@types/react
包但遇到了问题。Definitions by:
中的index.d.ts
)所以他们可以回应。在#21146 中有一些关于React.Fragment
正确类型的讨论,但是虽然symbol | number
可能准确地反映了Fragment
的内部 React 类型,但它阻止了React.Fragment
从被用作 TSX 元素。
<React.Fragment> // error here: React.Fragment does not have any construct or call signatures
<div>Child 1</div>
<div>Child 2</div>
</React.Fragment>
我意识到我们可以使用<></>
语法渲染片段,但是 React 文档声明这只是将糖去除为<React.Fragment></React.Fragment>
并且这是向片段添加键的唯一方法。
因此,我认为React.Fragment
应该更改为更接近React.ComponentType<{}>
,这会给它key
和children
道具。
如果人们同意这个提议,我可以打开 PR。
感谢您捕捉到这个,@jgoz!
我认为更好的方法可能是我们在 TypeScript 方面解决这个问题,而不是改变React.Fragment
来绕过编译器的行为。
我会研究这个,看看这是否是最好的方法。
@uniqueiniquity听起来不错。 如果在 TS 中修复它是不可能/不可行的,我有一个准备好去的分支。
@jgoz继续并打开 PR。 经过这里的一些讨论,听起来您暂时有正确的方法。
最有用的评论
@uniqueiniquity听起来不错。 如果在 TS 中修复它是不可能/不可行的,我有一个准备好去的分支。