Typescript 为什么我可以将void指定给永不返回的函数

Typescript 为什么我可以将void指定给永不返回的函数,typescript,error-handling,eslint,Typescript,Error Handling,Eslint,使用typescript 4.1.2和strict:true,我可以声明这样一个函数,而不会引起编译器的任何抱怨: function someFunction():void{ 抛出错误(`y so salty?`); } 在我的理解中,这个函数应该被键入为returning。我很惊讶编译器没有在这里抱怨void 毕竟,调用函数时会产生巨大的差异。在从不-返回函数调用之后的任何内容都将是无法访问的代码,而无效则不是这种情况。我当然想知道这个区别 这里的TS如此松懈的原因是什么 我可以通过TS配

使用
typescript 4.1.2
strict:true
,我可以声明这样一个函数,而不会引起编译器的任何抱怨:

function someFunction():void{
抛出错误(`y so salty?`);
}
在我的理解中,这个函数应该被键入为returning。我很惊讶编译器没有在这里抱怨
void

毕竟,调用函数时会产生巨大的差异。在
从不
-返回函数调用之后的任何内容都将是无法访问的代码,而
无效
则不是这种情况。我当然想知道这个区别

  • 这里的TS如此松懈的原因是什么
  • 我可以通过TS配置防止这种行为吗
  • (奖金)是否有——或者甚至可能有——一条
    eslint
    规则来涵盖这一点

我同意,可能的复制品接近复制品,非常感谢您指点我。仍然希望得到关于如何防止这种情况的答案:)链接问题中的答案已经解释了为什么警告会在非常正常的代码中发出警告。@panepeter没有找到任何eslint规则。看起来您应该显式地键入每个函数