制造;“检测到无法访问的代码”;编译警告而不是TypeScript中的错误?

制造;“检测到无法访问的代码”;编译警告而不是TypeScript中的错误?,typescript,Typescript,在Typescript中,当存在无法访问的代码时,编译器默认生成错误: error TS7027: Unreachable code detected. 我可以通过使用编译器选项allowUnreachableCode来避免它,但是我可以将它改为“警告”吗 我仍然希望了解无法访问的代码。在开发和调试期间,我有时使用if(false)临时删除一些功能,这比注释代码要好,尤其是当代码本身包含注释时 在C#中,无法访问的代码会生成警告(我可以通过其他选项将其视为错误),在我看来,这是更好的处理方法。

在Typescript中,当存在无法访问的代码时,编译器默认生成错误:

error TS7027: Unreachable code detected.
我可以通过使用编译器选项
allowUnreachableCode
来避免它,但是我可以将它改为“警告”吗

我仍然希望了解无法访问的代码。在开发和调试期间,我有时使用
if(false)
临时删除一些功能,这比注释代码要好,尤其是当代码本身包含注释时


在C#中,无法访问的代码会生成警告(我可以通过其他选项将其视为错误),在我看来,这是更好的处理方法。

在临时删除功能的特定情况下(我认为这是希望使用无法访问的代码的主要情况),编写


将被TypeScript语言接受,但仍将触发来自
tslint

的“意外恒定条件”警告。截至撰写时,答案为“否”,无法将其变成警告;正如你所说,这不是“错误”就是“没有”。存在以允许将错误配置为警告,这将允许将此配置为警告。希望它能很快实现。

即使编译器发现错误,它仍然会发出js结果,除非您使用的是
--noemitError
标志。因此,您可以将错误视为warnings@NitzanTomer说得好。尽管出现
webpack:未能编译。
消息,但错误似乎不会阻止webpack生成bundle是否可以设置全局变量alwaysFalse=false;在typescript中声明var(从而使typescript编译器不知道它总是false),然后执行if(alwaysFalse),而不是if(false),这是一个错误的答案。问题是它是否可能是一个警告,而不是这个错误是否可以完全避免。@Jez:第二个建议将创建一个linter警告。
if( <any>false ) {
  // unused code goes here
}
if( 0 ) {
  // unused code goes here
}