Javascript 假阳性;检测到无法访问的代码。ts(7027)“;?

Javascript 假阳性;检测到无法访问的代码。ts(7027)“;?,javascript,typescript,visual-studio-code,Javascript,Typescript,Visual Studio Code,以下代码段返回console.log()上检测到的无法访问的代码。ts(7027)。在Visual Studio code v1.43.2上运行 constfoo=(()=>{ 试一试{ //像“return fs.readFileSync(“./credentials.json”)”这样的操作更有可能失败(nodejs) //下面的行只是占位符 返回{val:4}; }捕捉(错误){ 返回{val:-1}; } })(); console.log(foo.val)//vs抛出不可到达的如果您

以下代码段返回
console.log()
上检测到的
无法访问的代码。ts(7027)
。在Visual Studio code v1.43.2上运行

constfoo=(()=>{
试一试{
//像“return fs.readFileSync(“./credentials.json”)”这样的操作更有可能失败(nodejs)
//下面的行只是占位符
返回{val:4};
}捕捉(错误){
返回{val:-1};
}
})();

console.log(foo.val)//vs抛出不可到达的
如果您真的想以这种方式实现它,那么如果捕获发生,您需要对
val
进行某种回退

通过以下方式实施:

constfoo=(()=>{
设val=未定义
试一试{
val=4
}捕捉(错误){
抛出新错误(err);
}
返回{val}
})();

console.log(foo.val)这将如何抛出错误?还有“我想在声明时计算foo的值,而不是以后”这将始终是这样。如果您有异步代码,那么值仍然会在声明时计算,这只是一个承诺。我想永远不会。但返回值只是一个占位符。你可以用一些操作来替换它。那么,这个操作会引发错误吗?如果没有,则将无法访问
catch
。vscode会在
console.log()
,而不是
catch
上发出
警告,检测到
无法访问的代码。如果进入
catch
块,它已经没有返回任何内容,因为它只是抛出一个错误,从而中断了正常的操作流程。这就是为什么
return
行在
try
/
catch
块之外的原因。但这仍然无关紧要-在
抛出时,您仍然没有得到
return
语句。对,这一点很好。我的错。。。我仍然认为它会修复TS错误。