从Expo SDK31开始,集成了TypeScript支持。太好了。
但是,据我所知,它使用的是babel-typescript。对于我的项目,在Expo SDK33上运行,我需要使用react-native-typescript-transformer。这个是可能的吗?如何配置此更改?
PS:我需要使用react-native-typescript-transformer的原因是我需要对TypeScript名称空间和枚举的支持。我使用swagger-codegen来生成我的REST客户端层。但我发现的所有生成器都使用名称空间(如果我理解得很好,还有Babel 7也不支持的枚举)。
发布于 2019-06-19 17:41:28
终于弄明白了!
无论何时构建并运行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 SDK33上工作。我最终设法使用swagger-codegen来生成我的REST客户端层!
https://stackoverflow.com/questions/56651837
复制相似问题