声明文件

概述

什么是声明文件:以.d.ts 结尾的文件

有什么作用:有些文件因为是 js 写的,没有类型声明,这个时候可以使用声明文件为 js 代码提供类型声明,不然在 ts 中会报错

声明文件声明的位置:

  1. tsconfig.json 中 include 表示我们的 ts 代码写在哪里,只要我们的声明文件在这个指定的目录内即可,如 src
  2. 可以放置到 node_modules/@types 文件夹中
  3. 手动在 tsconfig.json 中通过typeRoots,指定声明文件在哪里,配置了后,就只以这个目录为准
  4. 与 js 代码所在目录相同,并且文件名也相同(推荐)

编写声明文件

自动生成

如果我们本来写的时候就是用 ts 写的,那么可以用自动生成(生产环境的代码肯定是纯 js,ts 被编译过后就成为 js,但是如果我们的代码会被别人使用,而且别人也是用的 ts,为了让别人也获得类型检查,这个时候就可以使用声明文件来描述编译后 js 文件的类型)。

自动生成方式:配置 tsconfig.json 中 declarationtrue 即可。然后再编译的时候就会为每个 js 生成一个声明文件

手动编写

  • 对于已有的库,它是使用 js 书写的,并且更改该代码库的代码为 ts 的成本较高。
  • 对于一些第三方库,它们使用 js 书写,并且也没有提供声明文件。

首先需要为某一个 js 文件建立一个声明式文件

全局声明:为全局变量声明类型

// 以 console.log 为例
declare var console: {
	log(message: any): void
}
// setTimeout

declare function seTimeout(handler:() => void, mill:number):number

模块声明

// 以 lodash 为例,假如 lodash 没有提供类型声明文件
// 新建一个声明文件,在文件内首先声明模块
declare module "lodash" {
	export function concat():[]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值