基于this TypeScript official documentation:
提出这个问题反应模式将发出React.createElement,不需要去 在使用之前通过JSX转换,输出将有一个 .js文件扩展名。
react-native 模式相当于 保留所有JSX,但输出将有一个 .js文件扩展名。
但是,我见过的所有教程都有反应模式:
"jsx": "react"
虽然这很有效,但我甚至没有看到警告,但我想了解React Native如何/为什么编译TSX
并且能够毫无问题地加载它们。 / p>
基本上:
react-native
模式时创建react
模式? 答案 0 :(得分:4)
在React Native出现之前,这个世界很干净:
| File Extension | Has JSX Syntax | Has Type Annotations |
--------------------------------------------------------------
| .tsx | Yes | Yes |
| .ts | No | Yes |
| .jsx | Yes | No |
| .js | No | No |
当TypeScript看到.tsx
文件时,它可以决定是否发出.jsx
个文件(jsx: preserve
)或.js
个文件(jsx: react
下)。使用JSX语法发出.js
文件是不可能的(因为 JSX不是合法的JavaScript语法)。
然后React Native说"我们在.js文件中有JSX语法!",这很奇怪,因为它是非法的,但无论如何。因此,如果您在TypeScript中编写React Native代码,有时您希望TS获取.tsx
个输入文件并生成仍然具有JSX语法的.js
文件。因此,JSX模式react-native
诞生了。