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

标签 javascript typescript try-catch eslint typescript-eslint

我最近添加了 eslint到我的 Typescript 代码库。
默认情况下,它启用 @typescript-eslint/no-unsafe-member-access .
突然之间,我的 catch block 上出现了大量的 lint 错误。
enter image description here
有没有好的解决方法?
Typescript 不允许我将其键入为 Error直接来自像 catch(err: Error) 这样的 catch 语句.
我不想完全禁用规则,也不想添加eslint-disable在每个 catch(err)堵塞。

最佳答案

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

try {
  ...
} catch(e) {
  if (e instanceof Error /*CustomError*/) {
   console.log(e.message)
  }
}

关于javascript - 如何处理 catch(err) block 上的 @typescript-eslint/no-unsafe-member-access 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66462386/

相关文章:

javascript - 在聊天 Discord.js 中发送消息 dm

typescript - 在 Typescript 中防止不适当的导入和执行项目层次结构

javascript - jQuery PreventDefault() 不适用于按钮

javascript - 如何从新窗口获取URL

javascript - 阻止 JavaScript 流

Angular 2 : convert array to Observable

typescript 如何从一个参数的类型推断另一个参数的类型

java - 记录异常并抛出新异常 - 它是反模式吗?

java - android - 处理异常以更新 UI

ios - 不会处理从这里抛出的错误,因为 context.save 中的封闭捕获并不详尽