打算为你的团队写一个封装好的工具?TS的声明文件是必不可少的,它不仅仅让你的工具支持TS,更是负责充当一个说明书的作用,让人对其的使用一目了然。
什么是声明语句?什么时候需要他?
假如我们想使用第三方库 jQuery,一种常见的方式是在 html 中通过script 标签引入 jQuery,然后就可以使用全局变量 $ 或 jQuery 了。
我们通常这样获取一个 id 是 foo 的元素:
$('#foo');
// or
jQuery('#foo');
// ts并不了解这两个变量从何来,到哪去。我们可以告诉ts的编译器,这个东西大概是什么
// 其用于编译时的检查,在编译结果中会被删除
declare var jQuery: (selector: string) => any;
jQuery('#foo');
复制代码
这就是声明语句。如果你是js编写的,往往需要一个声明文件。
如果你是ts编写的,那么让ts自动生成就好了。
以下教程根据js的库进行编写声明文件。
什么是声明文件?
你可以把声明语句看作是声明文件的“组件”。声明语句组成声明文件。
通常我们会把声明语句放到一个单独的文件{(jQuery.d.ts)声明文件必需以 .d.ts 为后缀。}中,这就是声明文件
// src/jQuery.d.ts
declare var jQuery: (selector: string) => any;
复制代码
一般来说,ts 会解析项目中所有的 *.ts 文件, .d.ts 的文件也属于*.ts文件。
所以当我们将 jQuery.d.ts 放到项目中时,其他所有 *.ts 文件就都可以获得 jQuery 的类型定义了。
假如仍然无法解析,那么可以检查下 tsconfig.json 。
这里只演示了全局变量模式的声明文件,通过模块导入的方式的话,那么引入声明文件又是另一种方式了。
书写声明文件!
一般来说第三方库都会提供声明文件,我们只需要安装它就好了。
但有一些库不会提供声明文件,我们就需要自己书写声明文件了。
前面只介绍了最简单的声明文件内容