TypeScript 在jsxFactory中,

iezvtpos  于 4个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(40)

Bug报告

我想创建自己的JSX-Factory,它引用this,例如this.createElement

🔎搜索词

自定义JSX工厂,这个在jsx工厂中

🕗版本与回归信息

在版本4.7.2和版本4.8.0-dev.20220524(@next)上进行了测试。

  • 这是我尝试的每个版本的行为,我查阅了关于JSX的FAQ条目。

⏯Playground链接

遗憾的是,Playground不支持jsxFactory tsconfig字段,因此无法在Playground中显示。

💻代码

{
    "compilerOptions": {
        "jsx": "react",
        "jsxFactory": "this.customCreateElement"
    }
}
class ExampleComponent {
    render() {
        return <app-example>
            <app-child></app-child>
        </app-example>;
    }

    customCreateElement(tagName: string, attributes: { [name: string]: any }, ...children: []) {
        // ... create something in the dom or whatever
    }
}

🙁实际行为

TypeScript发出正确的代码(带有this引用),但仍然抛出错误:

index.tsx:3:17 - error TS2304: Cannot find name 'this'.
3         return <app-example>
                  ~~~~~~~~~~~

index.tsx:4:14 - error TS2304: Cannot find name 'this'.
4             <app-child></app-child>
               ~~~~~~~~~

Found 2 errors in the same file, starting at: index.tsx:3

🙂预期行为

输出保持不变-但没有错误消息。

wydwbb8l

wydwbb8l1#

如果这个问题很简单,我们会修复它。否则,我认为这太糟糕了,除非有更强烈的理由支持添加对该功能的支持。

avkwfej4

avkwfej42#

我很想贡献自己,有没有起点/你知道我应该从哪里开始挖掘吗?我已经检查了代码并让它运行起来了!

相关问题