有时候,我会收到TSLint错误“block is empty”。例如,当我向函数传递一个no-op回调时,就会发生这种情况:
doSomething(() => {});
据我所知,JSLint显然也是这样做的,但我没有验证这一点。
我发现这些用法是完全有效的,所以我试着找出为什么空块被认为是坏的。但是我唯一能找到的(例如在this answer中)是添加一个return;
以避免错误的指令。这不是我想在每个空回调中做的。
为什么TSLint报告上面的空块有问题?有什么理由我不应该禁用检查吗?
6条答案
按热度按时间jhdbpxl91#
为什么TSLint将上述空块报告为问题
为了防止 * 错误 *。可能忘记填写函数。建议将
() => undefined
作为noop。更多
如果你想禁用它,只需将
"no-empty": false,
添加到你的tslint.json
(全局禁用)或使用/* tslint:disable:no-empty */
注解内联禁用它。pepwfjgg2#
如果您觉得在某些情况下不想使用回调,可以修改代码
从
到
用()=〉{}替换它意味着你不关心这个回调函数,而显式类型转换可以避免这种暗示。
祝你好运。
wi3ka0sx3#
抑制错误并指定空块是故意的一种方法是禁用规则temporary:
或者使其为非空:
iibxawm44#
与所有检查一样,您可以最终判断它们是否对您有帮助。您可以使用以下选项之一关闭此TSLint检查。
禁用tslint.json中的规则
禁用文件中的规则:
如果在将来的某个时候您发现一个空块给您带来了问题,您可以随时将其重新打开。
qij5mzcb5#
tslint v5.10.0在
"no-empty"
中引入了"allow-empty-functions"
选项,仅用于此情况;"allow-empty-catch"
(在v5.5.0中引入)也可能有用:46scxncf6#
如果它不工作内联注解以禁用尝试此操作