1 . 类型声明文件
类型声明文件 : 用来为已存在的 JS 库提供类型信息 。 今天几乎所有 JavaScript 应用都会引入许多第三方库来完成任务需求 。这些第三方库不管是不是用 TS 编写的 ,最终都要编译成 JS 代码 ,才能给给开发者使用 。但是我们在开发中使用第三方库时 ,发现它们都有相应的 TS 类型提示 ,那是因为它们有类型声明文件 !!!
2 . TS 里面的两种文件类型
. ts 是代码实现文件 . d .ts 是类型声明文件
2 . 1 后缀为 .ts文件 :
- 既包含类型信息 ,又可执行代码
- 可以被编译为 . js文件 ,然后 ,执行代码
- 用途 :编写程序代码的地方
2 . 2 后缀为 .d.ts文件 :
- 只包含类型信息的类型声明文件
- 不会生成 .js 文件 ,仅用于提供类型信息
- 用途 :为 JS 提供类型信息
3 . 类型声明文件的使用说明
3 . 1 使用已有的类型声明文件
-
内置类型声明文件: TS 为 JS 运行时可用的所有标准化内置 API 都提供了声明文件 。(ctrl + 鼠标左键 可查看)
-
第三方库的类型声明文件 :
(1) 库自带的类型声明文件
(2) 如果库没有 ,则需要自己引入 ,(由 DefinitelyTyped 提供 ,DefinitelyTyped是一个 github 仓库 ,用来提供高质量 TypeScript 类型声明),可通过 npm / yarn 等自己引入 。(可在 TS 官方文档查询 @types/* 库) 。
3.2创建自己的类型声明文件
- 项目内共享型 : 如果多个 .ts 文件中都用到同一个类型 ,此时可以创建 . d . ts 文件提供该类型 ,然后实现类型共享 。
- 创建index . d .ts 类型声明文件
- 用 export 导出
- 在需要使用共享类型的 .ts 文件中 ,通过 import 导入即可 。
- 为已有 JS 文件提供类型声明 :
(1) 将 JS 项目迁移到 TS 项目时 ,为了让已有的 .js 文件有类型声明 。
注意 : 类型声明文件的编写与模块化方式相关 ,不同模块化方式有不同的写法 。而 TS 支持各种模块化形式的类型声明 。这就导致 ,类型声明文件相关内容又多又杂。
开发环境准备 : 使用 webpack 搭建 ,通过 ts - loader 处理 .ts 文件。
- 自己创建一个 . d .ts 文件在里面进行类型声明 。
- declare 关键字 ,用于类型声明 ,放在 let 前面,表示是为变量声明类型 ,而不是重新创建一个变量 。
- 而对于 type 、interface 等这些明确只有在 TS 里面才有的 ,就可以省略 declare 。
(2) 自己要创建一个库。