TypeScript 声明文件
当引入第三方库时,我们会使用这些库 export 的变量,这时需要引用它的声明文件,其中一般包含对该库所提供变量的声明,和相应数据类型的定义,以便 ts 编译器可以识别这些变量,而不会在编译时报错,同时获得代码补全、接口提示等功能。
通常我们会把这些声明语句放到一个单独的文件中,声明文件必需以 .d.ts 为后缀(d stand for define),例如 jQuery.d.ts
js
// src/jQuery.d.ts
declare var jQuery: (selector: string) => any;
Tip
项目中有声明文件,但仍然无法解析,可以检查配置文件 tsconfig.json 中的 files、include 和 exclude 配置,确保其包含了 jQuery.d.ts 文件。
一般第三方库的 ts 声明文件不需要我们定义,社区已经帮我们定义好了,例如jQuery in DefinitelyTyped 可以直接下载使用,但是更推荐的是使用 @types 统一安装管理第三方库的声明文件,直接用 npm 安装对应的声明模块即可:
bash
npm install @types/jquery --save-dev
Tip
可以在这个页面搜索常见的第三方库的声明文件。
如果第三方库没有提供声明文件时,需要自己书写声明文件,在不同的场景下,声明文件的内容和使用方式会有所区别,常用的语法如下,更具体的说明可以参考这一篇文章:
declare var声明全局变量declare function声明全局方法declare class声明全局类declare enum声明全局枚举类型declare namespace声明(含有子属性的)全局对象interface和type声明全局类型export导出变量export namespace导出(含有子属性的)对象export defaultES6 默认导出export =commonjs 导出模块export as namespaceUMD 库声明全局变量declare global扩展全局变量declare module扩展模块///三斜线指令
Warning
声明语句中只能定义类型,切勿在声明语句中定义具体的实现