自 Expo SDK 31 以来,集成了 TypeScript 支持。太好了。
但是,据我所知,它使用 babel-typescript
。对于我的项目,在 Expo SDK 33 上运行,我需要使用 react-native-typescript-transformer
反而。这可能吗?我如何配置此更改?
PS:我需要使用 react-native-typescript-transformer
的原因是我需要支持 TypeScript 命名空间和枚举。我用 swagger-codegen生成我的 REST 客户端层。但是我发现的所有生成器都使用 namespace (如果我理解得很好的话,还有 Babel 7 不支持的枚举)。
最佳答案
终于明白了!
无论何时构建和运行 React Native 项目,都会启动一个名为 Metro 的打包程序。打包器会做一些事情,包括:将您所有的 Javascript 代码组合到一个文件中,并翻译您的设备无法理解的任何 Javascript 代码 - 例如 JSX 和 TypeScript(归功于 mahdi)。
要使用 react-native-typescript-transformer
连接并绕过 babel-typescript
,只需在项目根目录中创建一个名为 metro.config 的文件.js
。这是配置:
module.exports = {
transformer: {
babelTransformerPath: require.resolve(
'react-native-typescript-transformer',
),
},
};
适用于带有 TypeScript 3.4.5 的 Expo SDK 33。我终于成功地使用 swagger-codegen
生成了我的 REST 客户端层!
关于typescript - 使用 react-native-typescript-transformer 编译 TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651837/