gpt4 book ai didi

typescript - 为什么 TypeScript 不推断这个 JSX 工厂的返回类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:44 27 4
gpt4 key购买 nike

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 中对此进行了测试。

A tooltip in Visual Studio 2017 says "const element: any"

我想知道是否可以让 TypeScript 推断 JSX 工厂的返回类型。如果不可能,这是 TypeScript 的限制吗?为什么?

最佳答案

TypeScript 手册说明如下:

The JSX result type

By default the result of a JSX expression is typed as any. You can customize the type by specifying the JSX.Element interface. However, it is not possible to retrieve type information about the element, attributes or children of the JSX from this interface. It is a black box.

https://www.typescriptlang.org/docs/handbook/jsx.html#the-jsx-result-type

关于typescript - 为什么 TypeScript 不推断这个 JSX 工厂的返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com