自Expo SDK 31开始,就集成了TypeScript支持。太好了。
但是,据我所知,它使用babel-typescript
。对于在Expo SDK 33上运行的项目,我需要使用react-native-typescript-transformer
。这可能吗?如何配置此更改?
PS:之所以需要使用react-native-typescript-transformer
是因为我需要对TypeScript名称空间和枚举的支持。我使用swagger-codegen生成我的REST客户端层。但是我发现的所有生成器都使用名称空间(如果我理解得很好,还可以使用Babel 7不支持的枚举)。
答案 0 :(得分:1)
终于明白了!
每当您构建并运行React Native项目时,就会启动一个名为Metro的打包程序。打包程序要做的事情包括:将您所有的Javascript代码组合到一个文件中,并转换您的设备无法理解的任何Javascript代码,例如JSX和TypeScript(贷记为mahdi)。
要使用babel-typescript
连接并绕过react-native-typescript-transformer
,只需在项目根目录中创建一个名为metro.config.js
的文件。这是配置:
module.exports = {
transformer: {
babelTransformerPath: require.resolve(
'react-native-typescript-transformer',
),
},
};
在带有TypeScript 3.4.5的Expo SDK 33上工作。我终于设法使用swagger-codegen
来生成我的REST客户端层!