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

标签 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 客户端层。但是我发现的所有生成器都使用 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/

相关文章:

typescript - 调用 BehaviorSubject.next 时未触发 Observable.subscribe 方法

visual-studio - Visual Studio 找到 systemjs typescript 定义,但无法在编译时找到它们

svg - 如何在 React-native 或 Expo 中使用 SVG-Uri?

authentication - React Native Expo 推特认证

node.js - 不再能够在 Angular 4.2.3 中导入 BrowserAnimationsModule

javascript - 在授予的地理定位权限上附加事件监听器

android - React Native 中 textBreakStrategy 属性的简单、高质量、平衡之间有什么区别?

react-native - 使用 React Native Navigation 导航到下一个组件时完成当前组件?

javascript - React Native 中的条件导入

react-native - 如何在 React-Native 上设置第一个初始页面