typescript 支持将 jsx 编译为 javascript。如果想在 ts 中使用 jsx,需要做两件事情。
- 将文件命名为 .tsx
- 启用 jsx
Ts 附带了 3 中 jsx 模式:preserve、react、react-native,这机制模式只会影响生成阶段,不会影响类型检查
- preserve:这个模式不会对 jsx 做任何处理,只会把 .tsx -> .jsx。以便于将转换交给其他工具,例如(babel)
- react:会将 jsx 进行转换,使用 React.createElement,在使用前不需要再进行任何转换,同时会把 .tsx -> .js
- react-native:跟 preserve 类似,只不过输出的文件的扩展名会从 .tsx -> .js
类型断言:
- 在 .tsx 中类型断言只能使用 as,不能使用 这种方式,因为会跟 jsx 语法搞混