JS 和 JSX
在文件后缀中
.js
表示这是一个 JavaScript 文件
.jsx
表示这是一个 JavaScript XML 文件
JavaScript 是一种直译式脚本语言
JavaScript XML 是React组件内部构建标签的类XML语法。可以理解为React提供的语法糖,可以让编译器更方便快速的选择编译方式。
JavaScript 是能够被浏览器直接识别的,JavaScript XML需要经过编译器(webpack等)转换成 JavaScript
但在正常使用上,两者没有什么区别, .js
的语法和 .jsx
的后缀可以互换,语法上也完全兼容
Facebook的团队建议(也就是React的创造者),统一使用 .js 即可,无需特意区分。
TS 和 TSX
- TS文件是使用TypeScript编写的标准JavaScript文件,可以包含变量声明、函数定义等内容;
- TSX文件是TypeScript中的一种格式,它允许我们将JSX片段嵌入到TypeScript代码中,从而提供更好地对React组件的类型检查。
- 使用TSX文件时,我们需要先定义特定的接口或类型,然后使用这些接口或类型来表示React组件props和状态的类型。
从使用的角度上来说
.ts 的文件,内容上不支持 <div>
这种HTML语法,会报错的,而且VS Code
这类代码编辑器也不会提供相关代码提示和补全的功能。
总结:使用上 js=jsx,tsx=ts(不支持html语法(如<div>))+jsx
如果你只为JavaScript文件添加某些类型信息,则可以使用TS文件。
如果你要写一个React应用程序并想要利用TypeScript的类型检查,那么应该选择TSX。