使用TypeScript进行React Native:如何在setup.js中设置全局变量?

时间:2018-11-14 09:58:53

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

我正在使用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'.

所以我在Google上搜索了更多的内容,并找到了这个“修复程序”:

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

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

1 个答案:

答案 0 :(得分:1)

为什么打字稿会编译.js文件?

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

但是,我建议您在项目中使用键入内容:

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

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

declare module NodeJS {
  interface Global {
    fetch: GlobalFetch
  }
}

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