使用 react-native-typescript-transformer 编译 TypeScript?
Compile TypeScript with react-native-typescript-transformer?
自 Expo SDK 31 以来,集成了 TypeScript 支持。太棒了
然而,据我所知,它使用 babel-typescript
。对于我的项目 运行 on Expo SDK 33,我需要使用 react-native-typescript-transformer
来代替。这可能吗?我如何配置此更改?
PS:我需要使用 react-native-typescript-transformer
的原因是我需要支持 TypeScript 命名空间和枚举。我使用 swagger-codegen 来生成我的 REST 客户端层。但是我发现的所有生成器都使用名称空间(如果我理解得很好的话,还有 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 客户端层!
自 Expo SDK 31 以来,集成了 TypeScript 支持。太棒了
然而,据我所知,它使用 babel-typescript
。对于我的项目 运行 on Expo SDK 33,我需要使用 react-native-typescript-transformer
来代替。这可能吗?我如何配置此更改?
PS:我需要使用 react-native-typescript-transformer
的原因是我需要支持 TypeScript 命名空间和枚举。我使用 swagger-codegen 来生成我的 REST 客户端层。但是我发现的所有生成器都使用名称空间(如果我理解得很好的话,还有 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 客户端层!