在根目录有 types 文件夹,存在文件 global.d.ts,内容大致如下:
declare global {
declare type Recordable<T = any> = Record<string, T>;
}
这样定义的 Recordable 类型在项目里找不到 … 但是在文件头部加上:
import {} from 'xxx'
这样就可以匹配到 Recordable 类型定义 …
如果去掉 declare global 包裹,直接定义,则不需要增加 import … ,相反的,如果增加了,也找不到 …
这是什么原理 ??
.d.ts里面直接写type a={} 就可以了,
declare global 是写在模块中的。只有当模块被引用,才会在全局中生效