TypeScript环境下Jest扩展全局变量后无类型自动补全如何解决
解决方案
按照以下步骤操作即可修复类型补全不生效的问题:
- 调整类型声明文件的内容和存放位置
在项目根目录新建types文件夹,在该文件夹下创建global.d.ts,内容修改为:
declare global { namespace NodeJS { interface Global { app: import('supertest').SuperTest<import('supertest').Test>; } } // 适配globalThis和全局直接调用的类型识别 declare const app: import('supertest').SuperTest<import('supertest').Test>; } // 必须添加此行,将当前文件标记为模块,全局类型扩充才会生效 export {};
- 修改
tsconfig.json的include配置,新增types目录的扫描规则:
"include": ["./src/**/*", "./utils/**/*", "localization", "./tests/**/*", "./types/**/*"],
- 重启IDE的TypeScript语言服务
以VSCode为例,按下Ctrl+Shift+P(Mac系统为Command+Shift+P),选择「TypeScript: Restart TS Server」,等待服务重启完成后,即可在测试文件中看到全局变量的自动补全提示。
内容的提问来源于stack exchange,提问作者Shahda
相关产品推荐
相关产品推荐

