如何使无法访问的代码警告在 VSCode 中显示为错误?
How to make unreachable code warnings to be shown as errors in VSCode?
我在项目的tsconfig.json
中配置了"allowUnreachableCode": false
,下面的代码会在VSCode中显示一个警告:
const fn = () => {
return
// no-unreachable warning
console.log()
}
如何让它显示为错误?
短版
将 VS Code 设置中的 reportStyleChecksAsWarnings
设置为 false
长版
如果您检查 VS Code IDE 的源代码,特别是 typeScriptServiceClientHost
模块,您会发现 TypeScript 诊断错误 #7027 包含在以下 Set
(上面的评论不言自明):
// Style check diagnostics that can be reported as warnings
const styleCheckDiagnostics = new Set([
...errorCodes.variableDeclaredButNeverUsed,
...errorCodes.propertyDeclaretedButNeverUsed,
...errorCodes.allImportsAreUnused,
...errorCodes.unreachableCode,
...errorCodes.unusedLabel,
...errorCodes.fallThroughCaseInSwitch,
...errorCodes.notAllCodePathsReturnAValue,
]);
然后在isStyleCheckDiagnostic
方法中使用这个Set
定义如下:
private isStyleCheckDiagnostic(code: number | undefined): boolean {
return typeof code === 'number' && styleCheckDiagnostics.has(code);
}
反过来,在 getDiagnosticSeverity
方法中使用它来确定错误的严重性。从下面可以看出,严重性设置为 vscode.DiagnosticSeverity.Warning;
:
if (this.reportStyleCheckAsWarnings
&& this.isStyleCheckDiagnostic(diagnostic.code)
&& diagnostic.category === PConst.DiagnosticCategory.error
) {
return vscode.DiagnosticSeverity.Warning;
}
请注意,这仅在 reportStyleChecksAsWarnings
为 true
时发生(默认为 which is)。由于它暴露给设置,打开 settings.json
(你可能可以用编辑器来完成,但我更喜欢这种方式)并添加:
"typescript.reportStyleChecksAsWarnings": false
重新启动主机,瞧,漂亮的波浪线出现了,报告代码有问题:
我在项目的tsconfig.json
中配置了"allowUnreachableCode": false
,下面的代码会在VSCode中显示一个警告:
const fn = () => {
return
// no-unreachable warning
console.log()
}
如何让它显示为错误?
短版
将 VS Code 设置中的 reportStyleChecksAsWarnings
设置为 false
长版
如果您检查 VS Code IDE 的源代码,特别是 typeScriptServiceClientHost
模块,您会发现 TypeScript 诊断错误 #7027 包含在以下 Set
(上面的评论不言自明):
// Style check diagnostics that can be reported as warnings
const styleCheckDiagnostics = new Set([
...errorCodes.variableDeclaredButNeverUsed,
...errorCodes.propertyDeclaretedButNeverUsed,
...errorCodes.allImportsAreUnused,
...errorCodes.unreachableCode,
...errorCodes.unusedLabel,
...errorCodes.fallThroughCaseInSwitch,
...errorCodes.notAllCodePathsReturnAValue,
]);
然后在isStyleCheckDiagnostic
方法中使用这个Set
定义如下:
private isStyleCheckDiagnostic(code: number | undefined): boolean {
return typeof code === 'number' && styleCheckDiagnostics.has(code);
}
反过来,在 getDiagnosticSeverity
方法中使用它来确定错误的严重性。从下面可以看出,严重性设置为 vscode.DiagnosticSeverity.Warning;
:
if (this.reportStyleCheckAsWarnings
&& this.isStyleCheckDiagnostic(diagnostic.code)
&& diagnostic.category === PConst.DiagnosticCategory.error
) {
return vscode.DiagnosticSeverity.Warning;
}
请注意,这仅在 reportStyleChecksAsWarnings
为 true
时发生(默认为 which is)。由于它暴露给设置,打开 settings.json
(你可能可以用编辑器来完成,但我更喜欢这种方式)并添加:
"typescript.reportStyleChecksAsWarnings": false
重新启动主机,瞧,漂亮的波浪线出现了,报告代码有问题: