声明文件
TypeScript 通过声明文件来获取所有未显式在项目中定义过的内容,通常用来支持各种库和项目的外部全局变量定义等。声明文件是一个标准的 TypeScript 文件,以 .d.ts
后缀作为文件名结尾。通常使用 npm
安装的开头为 @types/
的库都是各个功能库提供的声明文件,用来支持 IDE 进行代码提示以及编译期的合法性验证。但是需要注意的是,不是所有的库都有对应的 @types/
提供声明文件,部分库已经自带了声明文件,或者其本身就是使用 TypeScript 编写的,这两种情况下,不需要安装 @types/
来提供支持。
声明文件中一般只包含变量、函数、接口、类、命名空间等内容的声明,不包含实现代码。所有的声明都使用 declare
关键字引领。例如:
declare let personName: string;
declare function Hello(greeting: string): string;
declare interface Animal {
height: number;
averageWeight?: number;
walk(): void;
}
declare class Mammal extends Animal {}
declare type Key = string | number;
declare namespace Application {
function Greeting(target: string): string;
}
应用项目中的所有类型声明可以都集中到一个指定的目录中,并在tsconfig.json
文件中的compilerOptions.typeRoots
字段中列举指定这个目录的路径,这样就可以在使用Typescript的应用中实现对于自定义类型的代码提示,而且还不必在所有声明自定义类型的文件中将自定义类型导出出来。