typescript 声明文件

作用

1、为已存在js库提供类型信息,这样在ts项目中使用这些库时候,就像用ts一样,会有代码提示、类型保护等机制

2、项目内共享类型:如果多个.ts文件中都用到同一个类型,此时可以创建.d.ts文件提供该类型,实现类型共享。

有哪些

内置的类型声明文件:
TS为JS运行时可用的所有标准化内置API都提供了声明文件
像window、document 等 BOM、DOM API 也都有相应的类型声明
第三方库的类型声明:
正常导入该库,TS就会自动加载库自己的类型声明文件

如何编写类型声明文件

类型声明文件中只能有类型定义 和 类型声明,不能包含其他执行代码

1、实现一个项目内共享类型文件

export type CustomArray = (number | string)[]
export type AddFunc = (a: number, b: number) => void
export interface PersonConfig {
  age: number,
  name: string,
  say(): void
}
// 下面代码会报错
//function add() {
//  console.log(1);
//}

然后再其他用到这些类型的地方引入即可

2、为已存在js库提供类型信息
将js迁移到ts 或者 创建的js库给别人的ts项目使用时候,可以提供类型声明文件
在导入.js文件时,TS会自动加载与.js同名的.d.ts文件,以提供类型声明。
对于let、function等具有双重含义(在JS、TS中都能用),应该使用declare 关键字,明确指定此处用于类型声明。
在这里插入图片描述
// 类型提供好以后,需要使用模块化方案中提供的模块化语法,来导出声明好的类型。
// 然后,才能在其他的.ts 文件中使用
// 如果没有导出,即使js文件导出了,但是声明文件没有导出,在ts当中也是没法使用的

// 类型定义并且导出 在需要用到的地方需要导入才能用
export type CustomArray = (number | string)[]
export type AddFunc = (a: number, b: number) => void
export interface PersonConfig {
  age: number,
  name: string,
  say(): void
}

// 类型声明 同文件名会被自动导入 
declare let a: number;
declare function add(a: number): void;

// 类型提供好以后,需要使用模块化方案中提供的模块化语法,来导出声明好的类型。
// 然后,才能在其他的.ts 文件中使用
// 也可以导出 自定义类型(如果需要使用到的话)
export { a, add, CustomArray, AddFunc, PersonConfig }

用法

1、被通过import导入,使用其中暴露的类型定义和变量声明。

2、和相关模块关联,为模块进行类型声明。

对于第二种用法,声明文件如何同相关模块关联呢?

比如有个第三方包名字叫"foo",那么TypeScript会在node_modules/foo中根据其package.json的types和typing字段查找库自带的声明文件查找到的声明文件被作为该模块的声明文件;
TypeScript也会在node_modules/@types/foo/目录中查找声明文件,如果能找到就被作为foo模块的声明文件;
TypeScript还会在我们的项目中查找.d.ts文件,如果遇到declare module 'foo’语句,则该声明被用作foo模块的声明。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的超集,意味着任何有效的 JavaScript 代码也是有效的 TypeScript 代码。TypeScript 提供了静态类型检查、面向对象编程、模块化开发和其他一些高级功能,以增强 JavaScript 开发的可靠性和可维护性。 TypeScript 工具主要包括以下几个方面: 1. TypeScript 编译器:TypeScript 编译器将 TypeScript 代码转换为 JavaScript 代码,使其能够在浏览器或 Node.js 环境运行。 2. TypeScript 声明文件声明文件(.d.ts)用于描述 JavaScript 库的类型信息,使 TypeScript 能够对这些库进行类型检查和补全。可以通过 npm 安装已有的声明文件,或者手动编写自定义的声明文件。 3. TypeScript 编辑器插件:许多流行的代码编辑器(如 Visual Studio Code)都支持 TypeScript,并提供了相应的插件来增强编辑器对 TypeScript 的支持。这些插件可以提供智能提示、代码补全、错误检查等功能。 4. TypeScript 语言服务:TypeScript 语言服务是一种基于语言服务器协议(Language Server Protocol)的服务,提供了与 TypeScript 相关的编辑功能,如代码补全、重构、跳转定义等。编辑器插件可以与语言服务进行通信,以实现更强大的编辑功能。 以上是 TypeScript 的一些常用工具,它们可以帮助开发者更好地使用 TypeScript 进行开发,并提高代码的质量和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值