typescript 如何使用@ts-ignore忽略打字错误?

z9ju0rcb  于 2023-01-31  发布在  TypeScript
关注(0)|答案(5)|浏览(454)

我曾经在TypeScript项目中导入一个纯JavaScript库,给了我一个烦人的Could not find a declaration file for module xxx消息。所以阅读了之后,我发现我可以用一个带有@ts-ignore的注解来抑制这个消息。但是,在有问题的行之前添加这个注解,我得到了另一个错误
不要使用“// @ts-ignore”注解,因为它们会隐藏编译错误@typescript-eslint/ban-ts-ignore
如何修复此错误并隐藏原始消息?

4szc88ey

4szc88ey1#

所有的答案都建议禁用整个eslint规则,这并不实用,更好的解决方案是忽略特定位置的eslint错误,如下所示:

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
k4emjkb1

k4emjkb12#

您可以停止使用@ts-ignore
或者您可以禁用eslint规则,将其添加到eslint配置中(.eslintrc或等效配置)

...
  "rules": {
    "@typescript-eslint/ban-ts-ignore": "off"
  }
...

**编辑:**如果您使用的是@typescript-eslint/eslint-plugin版本2.18或更高版本,则规则名为ban-ts-comment,您需要添加

"@typescript-eslint/ban-ts-comment": "off"

下面是更改日志

gcmastyq

gcmastyq3#

因为我缺乏声誉,所以作为答案而不是对已接受的答案发表评论。我仍然想做出贡献,并可能帮助别人。
我的原则是

@typescript-eslint/ban-ts-comment

不是ban-ts-ignore

hc2pp10m

hc2pp10m4#

我建议允许@ts-ignore带有强制描述。这可以通过.eslintrc.js中的以下配置来实现。

rules: {
  '@typescript-eslint/ban-ts-comment': [
    'error',
    {'ts-ignore': 'allow-with-description'},
  ],
},

现在您需要为ignore添加一个description,方法是在ignore语句后添加冒号:并添加描述(这也可以强制使用 * min length minimumDescriptionLength *)。
示例:

// @ts-ignore: Testing invalid input

在本例中,描述为Testing invalid input

ktecyv1j

ktecyv1j5#

如果使用npm运行应用程序,则可以在package.json中指定规则。语法与其他答案相当不同:

"eslintConfig": {
    . . .
    "rules": {
      "ban-ts-comment": 0
    },
    . . .
 }

我确认使用ban-ts-comment而不是ban-ts-ignore(仅使用typescript-eslint/eslint-plugin v2.33.0进行测试)

相关问题