TS全局类型声明来源
在编写 TS 的类型定义时,可以声明全局的类型,这样在其它地方就可以直接进行使用,不用再额外的单独引入了。而这些类型定义的来源通常有以下几个:
lib
TS 所需要引用的库(一些标准的 API、浏览器的 API、DOM 相关的 API 等),相关的类型声明是放在 typescript 库下面的 lib 文件夹中,主要是.d.ts文件。
需要在tsconfig.json中配置:
{
"compilerOptions": {
"lib": ["DOM", "ES2015", "ScriptHost", "ES2019.Array"],
}
}
如果没有 DOM,则不能使用
window.document之类的对象。
type
来源于文件夹 @type 底下的文件。
可以在tsconfig.json中设置:
{
"compilerOptions": {
"typeRoots": [], // 声明文件目录,默认时node_modules/@types
"types": ["node"] // 加载的声明文件包
}
}
include/files
TS 也可以搜索include里的指定的文件,或者匹配的文件和文件夹;也可以搜索files里的文件(只能是文件)。然后编译这些文件/文件夹里定义的类型到全局中。
在tsconfig.json中设置:
{
"compilerOptions": {
"include": [ // 指定一个匹配列表(属于自动指定该路径下的所有ts相关文件)——指定编译的文件或文件夹
"src/**/*",
"index.ts"
],
"files": ["demo.ts"], // 指定哪些文件使用该配置(属于手动一个个指定文件)——指定某个文件进行编译(不可指定文件夹)
}
}
小结
TS 寻找类型文件的顺序:
lib 文件夹 ——> typeRoots 文件夹 ——> include/files 文件
注意: 在 TS 中还可以创建
index.d.ts或global.d.ts,这两个文件夹下的文件不用声明(declare)就可以全局。?母鸡