typescript - React Native with TypeScript:如何在 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
使用本地化)。
然后我得到错误:
[ts] Cannot find name 'global'.
所以我用谷歌搜索了更多,发现了这个“修复”:
// Change to file to setup.ts and
const globalAny: any = global;
但它抛出了同样的错误,现在我被卡住了。如何设置全局变量?
解决方案
为什么打字稿编译.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');
推荐阅读
- android - Gradle 迁移:无法实例化应用程序 ClassNotFoundException。在路径上找不到类“应用程序”:DexPathList
- reactjs - 为什么我在反应引导程序中不使用正确的卡?
- ios - Siri Intent 请求访问令牌 OAUTH 令牌
- python - 我对关于 auth lib 的 django 登录视图有疑问
- asp.net-core - 为生产配置 Aspnet Blazor Wasam
- reactjs - 如何使用反应路由器在 URL 中使用哈希
- javascript - JS中以毫秒为单位的时间计算
- docker - 如何给容器一个静态 ip,或者如何链接两个 Docker 容器?
- java - 詹金斯在运行 jar 文件后挂起
- python - Selenium 测试自动化,driver.get(url) 发生在网站启动之前