【问题标题】:React Native with TypeScript: How to set up globals in setup.js?React Native with TypeScript:如何在 setup.js 中设置全局变量?
【发布时间】:2018-11-14 09:58:53
【问题描述】:

我正在使用 TypeScript 构建一个 React Native 应用程序。

我想使用jest-fetch-mock。在文档中说要创建setup.js 文件并添加

global.fetch = require("jest-fetch-mock");

在里面。我这样做了。但我得到了错误:

[ts] Cannot compile namespaces when the '--isolatedModules' flag is provided.

所以我搜索了一下,发现我只需要导入一些东西来解决这个问题(这很好,因为我需要导入来设置NativeModules.ReactLocalization 以使用localization)。

然后我得到错误:

[ts] Cannot find name 'global'.

所以我搜索了更多内容并找到了这个“修复”:

// Change to file to setup.ts and
const globalAny: any = global;

但它会引发同样的错误,现在我被卡住了。如何设置全局变量?

【问题讨论】:

    标签: typescript unit-testing react-native jestjs jest-fetch-mock


    【解决方案1】:

    为什么 typescript 会编译 .js 文件?

    如果您有setup.ts 文件:尝试在global.fetch = ... 之前添加declare var global: any;

    但是,我建议您在项目中使用类型:

    npm i -D @types/node @types/jest
    

    然后扩展global 对象将如下所示:

    declare module NodeJS {
      interface Global {
        fetch: GlobalFetch
      }
    }
    
    global.fetch = require('jest-fetch-mock');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2017-03-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      相关资源
      最近更新 更多