@typescript eslint/没有未使用的变量存在一个问题。
所以,我们有类型
键入SomeType=(名称:string)=>;无效的
并且我们在带有类型声明的字符串中有@typescript eslint/没有未使用的变量错误,表示“name”已定义,但从未使用过
类型用法示例:
导出常量LogSomeInfo:SomeType=(名称:字符串)=>;{
常数a=名称;
控制台日志(a);
};
或:
接口CheckboxPropsType{
值:字符串,
onClick(值:字符串):void
}
而eslint在一次点击时就断了。。。字符串,表示值已定义但从未使用。
即使类型分配正确并且实际的onClick处理程序使用该值
问题:这个规则有什么问题,为什么会在这种情况下触发。为什么eslint将类型/接口中函数的类型声明识别为常规函数?我的eslint配置有问题吗
”;eslint“是:&引用^7.7.0
”@typescript-eslint/eslint插件";:&引用^3.6.1“;,
&引用@typescript eslint/parser";:&引用^4.0.1;,
&引用;eslint配置airbnb类型脚本“0”&引用^“9.0.0”
{
&“扩展”:[
&“airbnb typescript”;,
&“airbnb/hooks”;,
&“插件:反应/推荐”;,
&插件:@typescript eslint/recommended";
],
&“解析器”:“typescript eslint/parser”;,
&“解析选项”:{
&“ecmaFeatures”是:{
&“jsx”:正确
},
&ecmaVersion:2018,
&“源类型”:“模块”;,
&“项目”:“/tsconfig.json”;
},
&“设置”:{
&“反应”:{
&“版本”:“检测”;
}
},
&“插件”:[“typescript eslint”、“react hooks”、“react”],
&“环境”:{
&“浏览器”:真
},
&“规则”:{
&“对象卷曲换行符”:0,
&“导入/命名”:[“错误”],
&“缩进”:[“错误”,4],
&“react/jsx indent:[“error”,4],
&“逗号悬空”:[“错误”、“从不”],
&“导入/首选默认导出”:“关闭”;,
&“react/jsx片段”:“off”;,
&“箭头主体样式”:“关闭”;,
&“对象卷曲间距”:“关闭”;,
&“@typescript eslint/indent”:[“error”,4,{“SwitchCase”:1}],
&“@typescript eslint/explicit模块边界类型”:“关闭”;,
&“无未定义”:“错误”;,
&“react/jsx缩进道具”:[“error”,4],
&“最大长度”:[“错误”,{“代码”:120}],
&“反应/支撑类型”:“关闭”;
}
}
来源:我是typescript eslint
项目的维护者。
如果将@typescript eslint/parser
和@typescript eslint/eslint plugin
的版本更新到v4.1.0,您将能够使用最新的更改,使@typescript eslint/no unused vars
在所有情况下都能正常工作
作为旁白,使用插件的v3.x,但使用解析器的v4.x,将使您陷入一种非常奇怪的状态,行为未定义且不受支持
您应该确保始终使用两个包的相同版本,因为每个版本都是一起发布的