javascript - 误报 "Unreachable code detected.ts(7027)"?

标签 javascript typescript visual-studio-code

以下代码段在 console.log() 上返回 Unreachable code detected.ts(7027)。在 Visual Studio Code v1.43.2 上运行。

const foo = (() => {
  try {
    // operation like "return fs.readFileSync("./credentials.json")" is more likely to fail (nodejs)
    // following line is just placeholder
    return { val: 4 };
  } catch (err) {
    return { val: -1 };
  }
})();

console.log(foo.val); //vs throws unreachable

TypeScript Playground example

真的是误报吗?

最佳答案

如果您真的想以这种方式实现它,则需要在捕获发生时对 val 进行某种回退。

这样实现:

const foo = (() => {
  let val = undefined
  try {
    val = 4
  } catch (err) {
    throw new Error(err);
  }
  return { val }
})();

console.log(foo.val);

这可能只是 TypeScript 的问题,但这会解决问题。那个 TS 正在提示。

关于javascript - 误报 "Unreachable code detected.ts(7027)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61058410/

相关文章:

javascript - 如何通过 Puppeteer 获取元素的子元素

javascript - 当类型声明为环境外部模块定义时如何声明参数类型

javascript - 将参数传递给函数与使用类级别变量之间的根本区别是什么?

html - VS代码: auto format html does not work

visual-studio-code - 如何在不向右滚动的情况下查看整个代码(VS Code)?

javascript - 从扩展中捕获 Firefox 关闭事件

javascript - 创建一个接受对象列表的函数和一个通过它们的匿名函数

javascript - 添加name属性导致ID值成为IE和Opera中文档对象的属性?

reactjs - 未处理的拒绝 (TypeError) : Cannot read properties of undefined (reading 'appendChild' )

css - 如何让 CSS IntelliSense 在 Nuxt 元素上工作?