你知道TS中的三斜线指令吗

「这是我参与11月更文挑战的第27天,活动详情查看:2021最后一次更文挑战

前言

今天讲的内容还是TS的东西,叫三斜线指令

其实,三斜线指令我们并不陌生,在我们讲规避2个TS中命名空间和模块的陷阱的时候,就有提过一个: /// <reference>

正文

什么是三斜线指令

正如上面的/// <reference>,它的格式就是三条斜线后面跟一个标签

可以把它理解为单行注释,只不过它比较特殊,它会被当成编译器指令解析使用

你也可以把它理解能import,它可以告诉编译器在编译过程中要引入的额外的文件

出现位置

三斜线指令出现位置是有讲究的

它必须放在文件的最顶部,例外情况是,三斜线指令的前面也可以出现其他注释,包括单行注释、多行注释和三斜线指令

否则,三斜线指令会被当做普通的单行注释,而不具任何特殊的含义了

常见的三斜线指令

  • /// <reference path="..." />

用于声明文件之间的依赖

  • /// <reference types="..." />

用于声明对某个包的依赖

  • /// <reference no-default-lib="true"/>

用于将一个文件标记成默认库

  • /// <amd-module />

用于给编译器传入一个可选的模块名

  • /// <amd-dependency path="x"/>

告诉编译器有一个非TS模块依赖需要被注入;不过该指令已经使用import "x"语句代替了

注意点

需要另外补充几点:

  1. 编译器会对输入文件进行预处理来解析所有三斜线引用指令
  2. 一个文件用三斜线指令引用不存在的文件时,会报错
  3. 如果指定了--noResolve编译选项,三斜线引用会被忽略,既不会引入新文件也不会改变给定文件的顺序

END

以上就是本文的所有内容,如有问题,欢迎指正~

Guess you like

Origin juejin.im/post/7035868404632256542