🔥TS进阶之「声明文件」

40 阅读2分钟

声明文件

概述、编写、发布

概述

  1. 什么是声明文件?

    .d.ts结尾的文件

  2. 声明文件有什么作用?

    为JS代码提供类型声明

  3. 声明文件的位置

  • 放置到tsconfig.json配置中包含的目录中
  • 放置到node_modules/@types文件夹中
  • 手动配置
  • 与JS代码所在目录相同,并且文件名也相同的文件。用ts代码书写的工程发布之后的格式。

编写

手动编写 自动生成

自动生成

工程是使用ts开发的,发布(编译)之后,是js文件,发布的是js文件。

如果发布的文件,需要其他开发者使用,可以使用声明文件,来描述发布结果中的类型。

配置tsconfig.json中的declaration:true即可

手动编写

  1. 对已有库,它是使用js书写而成,并且更改该库的代码为ts成本较高,可以手动编写声明文件

  2. 对一些第三方库,它们使用js书写而成,并且这些第三方库没有提供声明文件,可以手动编写声明文件。

全局声明

声明一些全局的对象、属性、变量

namespace: 表示命名空间,可以将其认为是一个对象,命名空间中的内容,必须通过命名空间.成员名访问

模块声明

三斜线指令

在一个声明文件中,包含另一个声明文件

/// <reference path="../../index.d.ts" />

发布

  1. 当前工程使用ts开发

编译完成后,将编译结果所在文件夹直接发布到npm上即可

  1. 为其他第三方库开发的声明文件

发布到@types/**中。

1) 进入github的开源项目:github.com/DefinitelyT…

2) fork到自己的开源库中

3) 从自己的开源库中克隆到本地

4) 本地新建分支(例如:mylodash4.3),在新分支中进行声明文件的开发

在types目录中新建文件夹,在新的文件夹中开发声明文件

5) push分支到你的开源库

6) 到官方的开源库中,提交pull request

7) 等待官方管理员审核(1天)

审核通过之后,会将你的分支代码合并到主分支,然后发布到npm。

之后,就可以通过命令npm install @types/你发布的库名