如何处理 catch(err) 块上的 @typescript-eslint/no-unsafe-member-access 规则?

cbd*_*per 10 javascript try-catch typescript eslint typescript-eslint

我最近添加到eslint了我的 Typescript 代码库中。

默认情况下,它启用@typescript-eslint/no-unsafe-member-access.

突然之间,我的 catch 块上出现了大量的 lint 错误。

在此输入图像描述

有没有一个好的解决方法?

Typescript 不允许我Error直接从 catch 语句中输入它,例如catch(err: Error).

我不想完全禁用该规则,也不想eslint-disable在每个catch(err)块上添加。

小智 6

块中存在各种不确定性try,JavaScript 不仅可以抛出 Error 对象,甚至可以抛出string, 甚至nullundefined。我们可以使用instanceof-narrowing来避免这样的警告

try {
  ...
} catch(e) {
  if (e instanceof Error /*CustomError*/) {
   console.log(e.message)
  }
}
Run Code Online (Sandbox Code Playgroud)