为什么 TSLint 和 JSLint 报告空块?
Why do TSLint and JSLint report empty blocks?
有时,我会收到 TSLint 错误 "block is empty"。这发生在例如当我将无操作回调传递给函数时:
doSomething(() => {});
据我了解,JSLint 显然也是这样做的,但我没有验证这一点。
我发现这些用法完全有效,所以我试图找到空块被认为是坏的原因。但我唯一能找到的东西(例如在 this answer 中)是添加 return;
以避免错误的说明。这是不是我想在每个空回调中做的事情。
为什么 TSLint 将上面的空块报告为问题?我有什么理由不应该禁用检查吗?
Why does TSLint report above empty block as problem
防止错误。可能忘记填写功能了。推荐 () => undefined
作为 noop。
更多
如果您想禁用它,只需将 "no-empty": false,
添加到您的 tslint.json
(全局禁用)或使用 /* tslint:disable:no-empty */
注释内联禁用它。
与所有检查一样,您对它们是否对您有帮助拥有最终判断权。您可以使用以下选项之一关闭此 TSLint 检查。
禁用 tslint.json
中的规则
//...
"no-empty": false,
//...
禁用文件中的规则:
/* tslint:disable:no-empty */
如果将来某个时候您发现一个空块给您带来了问题,您可以随时将其重新打开。
如果您觉得在某些情况下不想使用回调
你可以修改代码
来自
doSomething(() => {});
到
doSomething(() => undefined);
代入 () => {} 表示您不关心此回调。显式类型转换将避免影响。
祝你好运。
抑制错误并指定空块是有意的方法是临时禁用规则:
// tslint:disable-next-line:no-empty
doSomething(() => {});
或使其非空:
doSomething(() => {/**/});
tslint v5.10.0 为这种情况引入了 "allow-empty-functions"
选项 "no-empty"
;
还有 "allow-empty-catch"
(在 v5.5.0 中引入)可能有用:
"no-empty": [true, "allow-empty-functions", "allow-empty-catch"]
有时,我会收到 TSLint 错误 "block is empty"。这发生在例如当我将无操作回调传递给函数时:
doSomething(() => {});
据我了解,JSLint 显然也是这样做的,但我没有验证这一点。
我发现这些用法完全有效,所以我试图找到空块被认为是坏的原因。但我唯一能找到的东西(例如在 this answer 中)是添加 return;
以避免错误的说明。这是不是我想在每个空回调中做的事情。
为什么 TSLint 将上面的空块报告为问题?我有什么理由不应该禁用检查吗?
Why does TSLint report above empty block as problem
防止错误。可能忘记填写功能了。推荐 () => undefined
作为 noop。
更多
如果您想禁用它,只需将 "no-empty": false,
添加到您的 tslint.json
(全局禁用)或使用 /* tslint:disable:no-empty */
注释内联禁用它。
与所有检查一样,您对它们是否对您有帮助拥有最终判断权。您可以使用以下选项之一关闭此 TSLint 检查。
禁用 tslint.json
中的规则//...
"no-empty": false,
//...
禁用文件中的规则:
/* tslint:disable:no-empty */
如果将来某个时候您发现一个空块给您带来了问题,您可以随时将其重新打开。
如果您觉得在某些情况下不想使用回调 你可以修改代码
来自
doSomething(() => {});
到
doSomething(() => undefined);
代入 () => {} 表示您不关心此回调。显式类型转换将避免影响。
祝你好运。
抑制错误并指定空块是有意的方法是临时禁用规则:
// tslint:disable-next-line:no-empty
doSomething(() => {});
或使其非空:
doSomething(() => {/**/});
tslint v5.10.0 为这种情况引入了 "allow-empty-functions"
选项 "no-empty"
;
还有 "allow-empty-catch"
(在 v5.5.0 中引入)可能有用:
"no-empty": [true, "allow-empty-functions", "allow-empty-catch"]