前言
今天讲的内容还是TS
的东西,叫三斜线指令
其实,三斜线指令我们并不陌生,在我们讲规避2个TS中命名空间和模块的陷阱的时候,就有提过一个: /// <reference>
正文
什么是三斜线指令
正如上面的/// <reference>
,它的格式就是三条斜线后面跟一个标签
可以把它理解为单行注释,只不过它比较特殊,它会被当成编译器指令解析使用
你也可以把它理解能import
,它可以告诉编译器在编译过程中要引入的额外的文件
出现位置
三斜线指令出现位置是有讲究的
它必须放在文件的最顶部,例外情况是,三斜线指令的前面也可以出现其他注释,包括单行注释、多行注释和三斜线指令
否则,三斜线指令会被当做普通的单行注释,而不具任何特殊的含义了
常见的三斜线指令
/// <reference path="..." />
用于声明文件之间的依赖
-
/// <reference types="..." />
用于声明对某个包的依赖 -
/// <reference no-default-lib="true"/>
用于将一个文件标记成默认库 -
/// <amd-module />
用于给编译器传入一个可选的模块名 -
/// <amd-dependency path="x"/>
告诉编译器有一个非TS模块依赖需要被注入;不过该指令已经使用import "x"
语句代替了
注意点
需要另外补充几点:
- 编译器会对输入文件进行预处理来解析所有三斜线引用指令
- 一个文件用三斜线指令引用不存在的文件时,会报错
- 如果指定了
--noResolve
编译选项,三斜线引用会被忽略,既不会引入新文件也不会改变给定文件的顺序
END
以上就是本文的所有内容,如有问题,欢迎指正~