一开始使用TS时,我总担心,如果用的第三方js库不是TypeScript写的,那么 IDE 一定会疯狂报错,开发体验会很糟糕。那么多陈年老js库,作者不会都那么有精力来用TypeScript重构的吧。
后来发现是我多虑了。这种情况可以通过类型声明文件来解决。
类型声明文件是 以 .d.ts
结尾的文件,它用来暴露类型定义,所以 .d.ts
文件中的顶层声明,必须以 declare
或者 export
开头。有了这些文件,TypeScript 就能够完成类型检查。
可以在 node_modules/typescript/lib
下面看到很多声明文件,这些是 TypeScript 能够校验 js 标准库的原因。
对于第三方js库,一般有三种情况:
- 作者给出了
.d.ts
文件。这是最好的,我们可以直接使用。 - 开源社区给出了
.d.ts
文件。大部分高质量库,可以在 Github 的 DefinitelyTyped 中找到对应的类型声明。使用也很简单 :
正在使用的库没有 ts 声明,则可以尝试用下面指令安装类型声明文件
npm install --save-dev @types/your-library
- 自己编写
.d.ts
。
偷懒的话,直接用下面的方式
declare module "some-untyped-module";
这样代表这个库是 any 类型,至少 IDE 就不会烦你了。