search.png
关于我
menu.png
浅学TypeScript(6)——声明文件

什么是声明文件

简单的说就是把js的库,增加一份声明,这个声明描述了库中的变量、函数类等的类型,typescript通过引入这份声明文件,便可以使用这个js库。
因此这个声明文件可以理解为ts和js之间的黏合剂。

去哪里找声明文件

在开源社区中,很多库都已经有其声明文件了,
通过

npm install @types/xxx --save-dev
如jquery
npm install @types/jquery --save-dev

即可导入对应的声明文件

微软的TypeSearch网页,可以找到你所需要的声明文件。

自己写的旧代码要兼容js和ts

自己写的旧代码要兼容js和ts,也可以通过写声明文件来实现,
具体的语句有这几种:

  • declare var 声明全局变量
  • declare function 声明全局方法
  • declare class 声明全局类
  • declare enum 声明全局枚举类型
  • declare namespace 声明(含有子属性的)全局对象
  • interface 和 type 声明全局类型

具体可以看declaration-files

自动生成声明文件

如果库的源码本身就是由 ts 写的,那么在使用 tsc 脚本将 ts 编译为 js 的时候,添加 declaration 选项,就可以同时也生成 .d.ts 声明文件了。
我们可以在命令行中添加 --declaration(简写 -d),或者在 tsconfig.json 中添加 declaration 选项。这里以 tsconfig.json 为例:

{
    "compilerOptions": {
        "module": "commonjs",
        "outDir": "lib",
        "declaration": true,
    }
}

上例中我们添加了 outDir 选项,将 ts 文件的编译结果输出到 lib 目录下,然后添加了 declaration 选项,设置为 true,表示将会由 ts 文件自动生成 .d.ts 声明文件,也会输出到 lib 目录下。

版权声明

知识共享许可协议 本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
发布时间:2019年12月05日 15:33:26

评论区#

还没有评论哦,期待您的评论!

关闭特效