用react-native-typescript-transformer编译TypeScript?

时间:2019-06-18 14:51:12

标签: typescript react-native expo swagger-codegen

自Expo SDK 31开始,就集成了TypeScript支持。太好了。

但是,据我所知,它使用babel-typescript。对于在Expo SDK 33上运行的项目,我需要使用react-native-typescript-transformer。这可能吗?如何配置此更改?

PS:之所以需要使用react-native-typescript-transformer是因为我需要对TypeScript名称空间和枚举的支持。我使用swagger-codegen生成我的REST客户端层。但是我发现的所有生成器都使用名称空间(如果我理解得很好,还可以使用Babel 7不支持的枚举)。

1 个答案:

答案 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客户端层!