在 TypeScript 语法环境中,引入非 TypeScript 编写的包在 VSCode 中爆红,通常可以通过以下几种方法解决:
安装类型声明文件
- 很多 JavaScript 库都有对应的 TypeScript 类型声明文件,通常可以在
@types组织下的 NPM 包中找到。例如,如果使用lodash库,可以运行npm install @types/lodash来安装其类型声明文件。安装后,VSCode 就能识别该库的类型,消除爆红。
添加类型声明
-
如果没有找到对应的类型声明文件,或者类型声明文件不完善,可以在项目中手动添加类型声明。在项目中创建一个
.d.ts文件(比如types.d.ts),在其中使用declare module声明模块。例如,对于一个名为my-lib的库,可以在types.d.ts中添加declare module'my - lib';。这样告诉 TypeScript 该模块存在,不过这种方式不会提供具体的类型信息,只是让 TypeScript 不再报错。 -
若想提供更具体的类型信息,可进一步声明模块的内容。比如,若
my-lib有一个函数add,接收两个数字参数并返回一个数字,可以这样声明:
typescript
declare module'my - lib' {
export function add(a: number, b: number): number;
}
调整 TypeScript 配置
- 检查
tsconfig.json文件中的compilerOptions配置。确保allowJs设置为true,这样 TypeScript 会允许引入 JavaScript 文件,可能解决爆红问题。 - 还可以尝试设置
skipLibCheck为true,它会跳过对声明文件的类型检查,能解决一些因类型声明不匹配导致的爆红,但可能会降低类型检查的严格性。
重启 VSCode
- 有时,VSCode 可能没有及时更新对项目的类型检查信息。在进行上述更改后,尝试重启 VSCode,让它重新加载项目和类型信息,可能会使爆红问题消失。