typescript 中常见的三个斜杠代表什么?

具体例子,在 vitest 的文档中,提到

“如果你已经在使用 Vite,请在 Vite 配置中添加 test 属性。您还需要使用配置文件顶部的三斜杠指令添加对 Vitest 类型的引用。”

Alt text

那么这样写的目的是什么,起到了什么样的作用呢?下文将会详细介绍。

三斜杠指令的含义与要求

在 ts 的官网中有开一个章节来专门讲解它。

Triple-Slash Directives

从这里可以看出它的本质是一个注释。注释的内容被用作编译器指令。

img.png

生效的要求:

  1. 必须要在文件的顶部
  2. 如果不在顶部,前面的内容要么是别的注释,要么是别的三斜杠指令

分类与使用

三斜杠命令有不同的语法,根据语法的不同,可以分为以下几种:

  1. /// <reference path="..." /> 此指令用于引用另一个 TypeScript 文件,并使其声明和类型在当前文件中可用。
  2. /// <reference types="..." /> 此指令用于引用特定包或模块的类型声明。
  3. /// <reference lib="..." /> 此指令用于在编译过程中包含特定库。
  4. /// <reference no-default-lib="true"/> 此指令用于在编译过程中排除默认的 TypeScript 库。
  5. /// <amd-module name="module-name" /> 此指令用于在生成 AMD 样式模块时指定 AMD 模块的名称。
  6. /// <amd-dependency />

根据目的的不同可以分为两类:

  1. 用于声明引用
  2. 用于声明模块

用于声明引用

例如 /// <reference path="..." />, /// <reference types="..." />, /// <reference lib="..." />,都是用于声明引用的。

用于声明模块

而例如 /// <amd-module name=”…” />, /// <amd-dependency path=”…” />,则是用于声明模块的。