1 .d.ts文件
它是用来做类型的声明(declare)。 它仅仅用来做类型检测,告知typescript我们有哪
些类型
2.typescript的类型声明查找规则?
- 内置类型声明;
- 外部定义类型声明;
- 自己定义类型声明;
2.1 内置类型声明
- 内置类型声明通常在我们安装typescript的环境中会带有的
- 内置类型声明是typescript自带的、帮助我们内置了JavaScript运行时的一些标准化API的声明文件; 包括比如Math、Date等内置类型,也包括DOM API,比如Window、Document等;
https://github.com/microsoft/TypeScript/tree/main/lib
2.2 外部定义类型声明
- 外部类型声明通常是我们使用一些库(比如第三方库)时,有些库中自带.d.ts类型声明文件文件,这就是外部声明的类型声明文件。
- 有些库没有,需要我们手动添加,手动添加的就是内部声明文件。
2.3 自己定义类型声明
什么情况下需要自己来定义声明文件呢?
- 情况一:我们使用的第三方库是一个纯的JavaScript库,没有对应的声明文件;比如lodash
- 我们给自己的代码中声明一些类型,方便在其他地方直接进行使用
这些库通常有两种类型声明方式:
- 方式一:在自己库中进行类型声明(编写.d.ts文件),比如axios
- 方式二:通过社区的一个公有库DefinitelyTyped存放类型声明文件
该库的GitHub地址:
https://github.com/DefinitelyTyped/DefinitelyTyped/
该库查找声明安装方式的地址:
https://www.typescriptlang.org/dt/search?search=
比如我们安装react的类型声明: npm i @types/react --save-dev
3.怎么进行类型声明
使用declare关键字
3.1 声明变量,函数和类类型
和声明一个变量类型,只是不给出具体的值,但是要指定类型
declare function(name: string, age: number) :viod
constructor(name: string, age: number)
3.2声明模块
declare module '模块名' {}。
在声明模块的内部,我们可以通过 export 导出对应库的类、函数等;
export function(p: any[]){}: any
3.3 声明文件
当我们在ts中引入图片或者.vue文件时,ts不能识别这种类型,因此可以对这些文件进行类型声明