当我处理另一个问题时,我开始阅读the Typescript documentation on the JSX option。
有些选项会转换JSX,有些则不会。
我试图理解为什么有人需要在传输文件中保留JSX。我知道你可以用babel对传输文件进行后处理来处理JSX...但是为什么呢?
是否有一些转换可以在JSX上完成,但Typescript不支持?是否有一些需要保留JSX for React Native(因为有一个专用的react-native
选项,看起来与react
相同,但用于生成文件的扩展名)?
1条答案
按热度按时间lmyy7pcs1#
This issue thread列出了几个原因,包括运行时Assert的可能性和TS转发器可能落后的JSX更改中断。(使用JSX)作为更大建筑物一部分融入巴别塔在概念上更方便,Another example提到希望在整个代码上转换JSX,而不是让TS只处理它的一部分。(就我个人而言,我一直在与TS、Webpack、Babel和Rollup进行回购!)当功能重叠时,我只能选择他们想要使用的工具,我通常选择让Babel做React工作,因为Babel与Facebook生态系统的历史更长。
对于第二个问题,根据the docs和this PR,
react-native
选项输出js
扩展而不是jsx
,否则等效于preserve
。