TS07 声明文件

本文详细介绍了TypeScript声明文件的用途,包括声明语句、声明文件的格式和用途,如声明变量、函数、类和枚举类型。还讨论了如何为第三方库创建声明文件,如何扩展全局变量类型,以及如何自动生成和发布声明文件。
摘要由CSDN通过智能技术生成

声明语句

当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能

比如使用jQuery时,我们获取一个元素:

jQuery('#foo');
// ERROR: Cannot find name 'jQuery'.

但是这时编译器并不知道$或者jQuery是什么,所以我们需要使用declare定义它的类型

declare var jQuery: (selector: string) => any;

jQuery('#foo');

上面的declare var就是声明语句,它并没有定义一个变量,只是定义了jQuery的类型,仅仅用于编译时的检查,编译结果中会删除。

声明文件

通常情况,我们会将声明语句放到单独的文件中(jQuery.d.ts),这个文件就是声明文件:

// src/jQuery.d.ts

declare var jQuery: (selector: string) => any;

声明文件必须以.d.ts为后缀,当我们将jQuery.d.ts放入项目中,其他所有的*.ts文件就都可以获得jQuery的类型定义了

如果无法解析,可以检查一下tsconfig.json中的filesincludeexclude配置,确保包含了声明文件

第三方声明文件

大部分热门的第三方库的声明文件都不需要我们自己定义了,我们可以直接使用@types统一管理第三方库的声明文件。

可以在这个页面搜索需要的声明文件,然后使用npm安装对应的声明模块即可:

npm install @types/jquery --save-dev

书写全局变量

如果第三方库没有提供声明文件,我们需要自己书写声明了,在不同的场景下,声明文件的内容和使用方式有所区别

当通过<script>标签引入第三方库的时候,会注入全局变量,就像上面的例子一样。建议将声明文件和源码一起放到scr目录下。

注意,声明全局变量时,文件中不能包括export关键字,否则就会报错。

声明变量

可以使用declare vardeclare letdeclare const来声明变量,一般来说全局变量都是禁止修改的常量,所以大部分情况都应该使用const

declare const jQuery: (selector: string) => any;

要注意的是,声明语句中只能定义类型,不要在声明语句中定义具体的实现

声明函数

使用declare function来声明全局函数的类型,jQuery其实就是一个函数,所以也可以使用function来定义。在函数类型的声明语句中,也支持函数重载

declare function jQuery(cb: () => any)
declare function jQuery(selector: string): any;

声明类

使用declare class定义一个类:</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值