Javascript TypeScript与JSX

Javascript TypeScript与JSX,javascript,typescript,jsx,Javascript,Typescript,Jsx,我对TypeScript有点熟悉,最近也了解了JSX。他们俩似乎都很像我。我在上查看了与JSX的比较,他们将其与Dart和其他一些技术进行了比较,但没有与TypeScript进行比较 TypeScript和JSX似乎都编译成JavaScript,并提供静态类型和类,但根据web上的一些地方,例如,它们似乎是互补的,而不是竞争对手 我想让它不太开放,那么有人能告诉我TypeScript提供了哪些JSX没有的功能,反之亦然吗?比较两者有点像苹果和桔子。JSX是一种语言,TypeScript可以编译成

我对TypeScript有点熟悉,最近也了解了JSX。他们俩似乎都很像我。我在上查看了与JSX的比较,他们将其与Dart和其他一些技术进行了比较,但没有与TypeScript进行比较

TypeScript和JSX似乎都编译成JavaScript,并提供静态类型和类,但根据web上的一些地方,例如,它们似乎是互补的,而不是竞争对手


我想让它不太开放,那么有人能告诉我TypeScript提供了哪些JSX没有的功能,反之亦然吗?

比较两者有点像苹果和桔子。JSX是一种语言,TypeScript可以编译成它。我建议您在这里仔细阅读:

原始答案不够充分,且不符合当前标准

JSX不是一种语言。它只不过是Javascript,但具有不同的扩展。Facebook提出了这个新的扩展,这样他们就可以在JavaScript中定义类似XML的HTML实现。在早期版本的React中,在JavaScript中编写HTML时必须使用此扩展。然而,这一限制在几年前就被取消了,这基本上意味着JS和JSX没有任何区别。(顺便说一句,现在只使用.js扩展是标准规范)

谈到TypeScript,它是JavaScript的超集,它为普通JavaScript添加了额外的功能,使应用程序更加健壮。 观看此视频以更好地理解TypeScript:


总之,JSX=JS,typescript是Javascript的超集,JSX和typescript之间没有可比性。

我将尝试给你一个简单的答案。根据我的经验,TSX的优点在于它可以立即避免一些错误,它具有静态类型,易于维护,并且可以使用OPP(是的,就像Java一样)。JSX与JS非常相似,您不必定义数据的类型(动态类型),非常自由且易于理解。

您混淆了两件事。您链接到的第一篇文章是关于一种叫做
JSX
的语言的。这篇文章是2002年的,4年来也没有更新过。您链接到的第二篇文章是关于其中一部分的,其中包括一个可以使用typescript(它被称为TSX)的工具。谢谢,它澄清了问题。我想你的评论就是我问题的答案。@NitzanTomer我很高兴看到你的评论。他们为什么要制造这种混乱?!!真烦人@谁制造了混乱?两个完全不同的东西,只是名称相同。我认为两人都没有意识到这一点other@Eric你能改变你接受的答案吗?你所接受的是一种误导,JSX和TypeScript肯定都是语言,都可以转换成Javascript?您包含的链接似乎描述了如何将JSX嵌入到Typescript中并随它一起传输?@DanKing事实上,上面(已接受)的答案似乎是错误的。TypeScript是一种语言,是JavaScript的语法超集。JSX是FaceBook对JavaScript的类似XML的语法扩展,而不是语言本身。@vbguyny您提供的信息是关于TypeScript和FaceBook JSX扩展的,这与DeNA JSX无关。这里讨论了两个JSX。不幸的是,它们是两个完全不同的东西,有着相同的名字。是一种静态类型的、面向对象的语言,可以编译成香草JS(就像TypeScript一样)。另一方面,是直接嵌入JS中的类似XML的表达式(实际上它只是
React.createElement()
函数的语法糖)。请分别查看StackOverflow的标记[jsx]和[react jsx]。这似乎是一个比已接受的答案更好的答案。Thx,那么使用Typescript是否更好?@Jay如果您有一个大型项目,通常会这样。它提供静态类型检查,因此编译器在实际实例化变量的对象之前会知道变量的类型。与javascript相比,TypeScript具有更好(更丰富)的intellisense支持。调试很容易,但如果您知道如何使用源映射,这并不重要。最好的事情是互操作性,所以从Javascript到Typescript就像将文件从“.js”重命名为“.ts”一样简单,谢谢。正如我已经知道的,Typescript有尝试使用Typescript而不是JSX的想法。有一种静态类型的面向对象语言,它编译为香草JavaScript,称为,它经常与React的JSX混淆,正如您刚才所做的那样。OP可能在询问TypeScript和JSX语言之间的差异。