声明文件
概述、编写、发布
概述
- 什么是声明文件?
以.d.ts
结尾的文件
- 声明文件有什么作用?
为JS代码提供类型声明
- 声明文件的位置
- 放置到tsconfig.json配置中包含的目录中
- 放置到node_modules/@types文件夹中
- 手动配置
- 与JS代码所在目录相同,并且文件名也相同的文件。用ts代码书写的工程发布之后的格式。
编写
手动编写 自动生成
- 自动生成
工程是使用ts开发的,发布(编译)之后,是js文件,发布的是js文件。
如果发布的文件,需要其他开发者使用,可以使用声明文件,来描述发布结果中的类型。
配置tsconfig.json
中的declaration:true
即可
- 手动编写
-
对已有库,它是使用js书写而成,并且更改该库的代码为ts成本较高,可以手动编写声明文件
-
对一些第三方库,它们使用js书写而成,并且这些第三方库没有提供声明文件,可以手动编写声明文件。
全局声明
声明一些全局的对象、属性、变量
namespace: 表示命名空间,可以将其认为是一个对象,命名空间中的内容,必须通过
命名空间.成员名
访问
模块声明
三斜线指令
在一个声明文件中,包含另一个声明文件
发布
- 当前工程使用ts开发
编译完成后,将编译结果所在文件夹直接发布到npm上即可
- 为其他第三方库开发的声明文件
发布到@types/**中。
1) 进入github的开源项目:https://github.com/DefinitelyTyped/DefinitelyTyped
2) fork到自己的开源库中
3) 从自己的开源库中克隆到本地
4) 本地新建分支(例如:mylodash4.3),在新分支中进行声明文件的开发
在types目录中新建文件夹,在新的文件夹中开发声明文件
5) push分支到你的开源库
6) 到官方的开源库中,提交pull request
7) 等待官方管理员审核(1天)
审核通过之后,会将你的分支代码合并到主分支,然后发布到npm。
之后,就可以通过命令npm install @types/你发布的库名