saz*_*saz 35 typescript eslint
我有一个案例,我在 TypeScript 项目中导入了一个纯 JavaScript 库,这给了我唠叨的Could not find a declaration file for module xxx消息。所以在阅读后我发现我可以用@ts-ignore. 然而在违规行之前添加该评论,我收到另一个错误
不要使用“// @ts-ignore”注释,因为它们会抑制编译错误@typescript-eslint/ban-ts-ignore
如何修复此错误并禁止显示原始消息?
Tho*_*aud 70
你可以停止使用@ts-ignore:troll:
或者您可以禁用 eslint 规则。将其添加到您的 eslint 配置(.eslintrc或等效配置)中
...
"rules": {
"@typescript-eslint/ban-ts-ignore": "off"
}
...
Run Code Online (Sandbox Code Playgroud)
编辑:如果您使用的是@typescript-eslint/eslint-plugin2.18 或更高版本,则会调用该规则ban-ts-comment,您需要添加
"@typescript-eslint/ban-ts-comment": "off"
Run Code Online (Sandbox Code Playgroud)
反而。这是变更日志
Fan*_*Bao 40
我建议允许@ts-ignore强制描述。这可以通过以下配置来实现.eslintrc.js。文档链接
rules: {
'@typescript-eslint/ban-ts-comment': [
'error',
{'ts-ignore': 'allow-with-description'},
],
},
Run Code Online (Sandbox Code Playgroud)
您现在需要description为忽略添加一个。这是通过在忽略语句后添加冒号:并添加描述来完成的(这也可以具有强制的最小长度minimumDescriptionLength)。
例子:
// @ts-ignore: Testing invalid input
Run Code Online (Sandbox Code Playgroud)
在这种情况下,描述将是Testing invalid input
小智 34
由于我缺乏声誉,因此发布作为答案而不是评论已接受的答案。我仍然想做出贡献并可能帮助某人。
我的规则是
@typescript-eslint/ban-ts-comment
Run Code Online (Sandbox Code Playgroud)
不是 ban-ts-ignore
eha*_*hab 24
这里的所有答案都建议禁用整个 eslint 规则,这不是很实用,更好的解决方案是忽略该特定位置的 eslint 错误,如下所示:
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
Run Code Online (Sandbox Code Playgroud)
从 TypeScript 3.9 开始,@ts-expect-error可以使用。
\n\n当一行前面有 // @ts-expect-error 注释时,TypeScript 将禁止报告该错误;但如果\xe2\x80\x99s 没有错误,TypeScript 将报告 // @ts-expect-error isn\xe2\x80\x99t 是必要的。
\n
这@typescript-eslint/ban-ts-comment只要提供说明解释原因,
例如:
\n// @ts-expect-error: No declaration file for module\nimport something from \'somemodule\';\nRun Code Online (Sandbox Code Playgroud)\n顺便说一句,为了专门解决有关模块缺少声明文件的错误,如果确实没有要从Definely Typed安装的类型定义(例如@types/module_name),那么您可以在任何位置声明该模块.d.ts在项目中的以抑制错误。
declare module \'module_name\';\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
32895 次 |
| 最近记录: |