Javascript Typescript React.ReactElement与JSX.Element

Javascript Typescript React.ReactElement与JSX.Element,javascript,typescript,Javascript,Typescript,基本问题: 类型React.ReactElement与JSX.Element之间有什么区别?它们是一样的吗,我应该在什么时候使用它们呢?即使可以在React中使用JSX来创建React元素,React也不需要JSX来工作,您可以用普通JavaScript来代替它 React元素简单地定义为您希望在屏幕上看到的内容的描述。换句话说,React元素是关于如何创建浏览器DOM的说明 ReactElement是具有类型和道具的对象。React读取这些对象并使用它们来构造DOM。另一方面,JSX.Elem

基本问题:


类型
React.ReactElement
JSX.Element
之间有什么区别?它们是一样的吗,我应该在什么时候使用它们呢?

即使可以在React中使用JSX来创建React元素,React也不需要JSX来工作,您可以用普通JavaScript来代替它

React元素简单地定义为您希望在屏幕上看到的内容的描述。换句话说,React元素是关于如何创建浏览器DOM的说明


ReactElement是具有类型和道具的对象。React读取这些对象并使用它们来构造DOM。另一方面,JSX.Element是一个ReactElement,props的泛型类型为any。

这并不完全正确。React使用元素(节点)的抽象概念。这允许创建不同的呈现器(比如React Native,它与本机UI组件一起工作,或者React DOM与HTML DOM一起工作,甚至还有Ink,它在终端中呈现React组件)。什么是不完全正确的?@wirher(如果你没有问我的问题)你的假设是问这个问题的人使用DOM。不完全正确,JSX不是编译/传输的react应用程序中存在的东西。这只是构建在JavaScript之上的语法,用于简化组件树的声明,通常由Babel或TypeScript编译器处理。我写了第一条评论,因为这不仅适用于DOM,也适用于浏览器之外的组件树(例如React Native),我觉得这值得一提。