Avatar ·

何时在 TypeScript 与 React 中使用 JSX.Element、ReactNode 和 ReactElement?

你好!我开始学习 TypeScript 与 React,经常混淆描述组件返回值或 children 的类型。网上常见三种类型:`JSX.Element`、`ReactNode` 和 `ReactElement`。但何时使用哪种——对我来说是个谜。 例如,我写一个包装组件: ```typescript interface WrapperProps { children: ??? // 这里写什么? } ``` 或者当我想显式指定函数组件的返回值类型时: ```typescript const MyComponent = (): ??? => { return
Hello
; }; ``` 我试过用 `ReactNode`,但当我尝试传递类似组件数组的东西时,TypeScript 会报错。然后我试了 `JSX.Element`——似乎能用,但我不确定是否正确。至于 `ReactElement`,我完全不明白它有什么用。 请通俗地解释一下:这三种类型有什么区别,以及在什么情况下使用哪一种?非常感谢!