Typescript-d.ts文件

typescript 声明文件介绍及使用

2023.2.19 星期日

d.ts 介绍

二、 什么是“.d.ts” 文件

基于 Typescript 开发的时候,很麻烦的一个问题就是类型定义。导致在编译的时候,经常会看到一连串的找不到类型的提示。“d.ts”文件用于为 TypeScript 提供有关用 JavaScript 编写的 API 的类型信息。
简单讲,就是你可以在 ts 中调用的 js 的声明文件。TS的核心在于静态类型,我们在编写 TS 的时候会定义很多的类型,但是主流的库都是 JS编写的,并不支持类型系统。这个时候你不能用TS重写主流的库,这个时候我们只需要编写仅包含类型注释的 d.ts 文件,然后从您的 TS 代码中,可以在仍然使用纯 JS 库的同时,获得静态类型检查的 TS 优势。

在此期间,解决的方式经过了许多的变化,从 DefinitelyTyped 到 typings。最后是 @types。在 Typescript 2.0 之后,推荐使用 @types 方式。

2.3 @Types

默认情况下,所有的 @types 包都会在编译时应用,任意层的 node_modules/@types 都会被使用,进一步说,在 ./node_modules/@types/ , ../node_modules/@types/, ../../node_modules/@types/ 都被应用。如果你的类型定义不在这个文件夹中,可以使用 typesRoot 来配置,只有在 typeRoots 中的包才会被包含,配置如

1
2
3
4
5
{
"compilerOptions": {
"types" : ["node", "lodash", "express"]
}
}

2.4 *.d.ts和@types关系

@types是npm的一个分支,用来存放.d.ts文件,如果对应的npm包存放在@types中,要使用必须下载!如果是自己本地的.d.ts申明文件,则和@types没有任何关系!

第三方库的声明文件

## 什么是声明语句§
假如我们想使用第三方库 jQuery,一种常见的方式是在 html 中通过 <script> 标签引入 jQuery,然后就可以使用全局变量 $ 或 jQuery 了。

## 什么是声明文件§
通常我们会把声明语句放到一个单独的文件(jQuery.d.ts)中,这就是声明文件3

### 第三方声明文件§
当然,jQuery 的声明文件不需要我们定义了,社区已经帮我们定义好了:jQuery in DefinitelyTyped。

我们可以直接下载下来使用,但是更推荐的是使用 @types 统一管理第三方库的声明文件。

@types 的使用方式很简单,直接用 npm 安装对应的声明模块即可,以 jQuery 举例:
npm install @types/jquery --save-dev

## 书写声明文件§

在不同的场景下,声明文件的内容和使用方式会有所区别。

声明文件文档

typescript文档-声明文件

识别库的类型

全局库

模块化库

使用依赖

补充说明

防止命名冲突

knowledge is no pay,reward is kindness
0%