[TS略知一二]年轻人的第一份d.ts文件

在 TypeScript 的世界里, 存在一种后缀为 ‘.d.ts’ 的文件, 它负责建立非 TS 模块到 TS 语言环境的 API 说明, 它定义了一套服务于 TS 的函数符号.

.d.ts 文件本身是用于提供给 TypeScript 编译器做强类型检查使用, 现在部分文本编辑器 (vs code) 亦可支持在编写普通 JavaScript 代码文件时, 根据工程中索引到的 .d.ts 文件进行智能代码提示/补全. 比较方便.

普遍情况下, 我们都是使用 .d.ts 在 TS 工程中引入 JS 库文件时做函数符号表. JS 模块通常有两种导入方式, 其一是现代化的模块化JS, 我们用一个比较具有代表性的 Axios 库例举; 另一种则是传统 JS 风格下, 通过挂载一个以模块名称命名的全局变量到 window 对象上作为挂载点的模块化方案, 其代表则是 jQuery 以及其生态下的大量插件 (jQuery 本身是支持 AMD 的, 不支持的是大量存量插件).

我们现在先看简单的全局变量模式, 即 —- 代码编写过程中凭空而来一个 $符号, 显然, TS 代码检查会检测到一个错误.

Cannot find name ‘$’

通过 declare 关键字, 我们可以尝试去申明它 ( $ 全局变量) 的结构.

申明接口和全局变量

上述

几经辗转, 现在 9012 年. types 文件在社区已经有了一个稳定的发布地址. 可以统一通过 npm 对其进行管理了. 就在 @types 这个组织仓库下. 在工程中可以直接通过 npm i --save-dev @types/jqueryyarn add -dev @types/jquery 进行符号文件依赖的安装.

本篇所用代码可在 GAYHub 上找到.