React Native with TypeScript:如何在 setup.js 中设置全局变量?

React Native with TypeScript: How to set up globals in setup.js?

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

所以我又用谷歌搜索了一下,发现了这个 'fix':

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

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

为什么 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');