【发布时间】:2019-05-28 00:48:23
【问题描述】:
JSX 工厂:
function h(type: string, _props, ..._children): HTMLElement {
return document.createElement(type); // breakpoint here is hit
}
tsconfig.json:
"jsx": "react",
"jsxFactory": "h"
.tsx 文件中的用法:
const element = <div></div>; // = any
TypeScript 似乎没有从 JSX 工厂推断返回类型 (HTMLElement)。变量element 在这里是any 类型,这是不可取的。
我已经在 Visual Studio 2017 和 VS Code 中对此进行了测试。
我想知道是否可以让 TypeScript 推断 JSX 工厂的返回类型。如果不可能,这是 TypeScript 的限制吗?为什么?
【问题讨论】:
-
ts 应该没有问题。也许你的工厂功能的位置不好......
-
@JurajKocan 我将它用作全局函数。我目前在
any中看到的项目不使用模块、导入、导出等。只是一堆全局 *.tsx 文件。
标签: typescript jsx type-inference tsx