0%

eslint的无法识别ts全局type解决方案

我在ts项目中声明了一个全局type,在使用这个type的时候,可以获得类型提示,但是eslint的no-undef规则无法校验通过

1
2
3
declare global {
type IdLike = number | string | null
}

全局type声明
eslint no-undef

查阅eslint官方文档得知,需要配置eslint配置文件(.eslintrc.*文件或package.json文件的eslintConfig字段)里的globals字段:

1
2
3
4
5
{
globals: {
IdLike: true
}
}

声明了几个全局type就要配置几个,还挺麻烦的,但是目前没找到更好的解决方案。

我这里是用作了全局type,globals更常见的用法是设置全局变量,值可以是writablereadonly,很好理解就是字面意思,由于历史包袱这两个值分别有两个备选项,效果一致。

1
2
3
4
5
6
{
"globals": {
"var1": "writable", // 或"writeable" 或 true
"var2": "readonly" // 或"off" 或 false
}
}

更多参考官方文档: