Angular:为什么在tslint中不允许使用按位运算符?

时间:2017-12-03 20:14:37

标签: angular typescript tslint

我们不能在模板中使用按位运算符,但为什么在TypeScript代码中tslint不允许它们?

"no-bitwise": true,

3 个答案:

答案 0 :(得分:11)

出现Linter的原因有很多:帮助保持一致,整洁和可读的代码,发现开发人员错误(例如,无法访问的代码或未使用的变量),并就可能存在的不良做法向您发出警告,即使在技术上可能允许这样做。

TSLint documentation

中所述

按位运算符通常是拼写错误-例如bool1 & bool2而不是bool1 && bool2。它们也可能表示代码过于聪明,从而降低了可维护性。

由于这些类型的错字比按位运算符的实际有效用法更为普遍,因此TSLint默认情况下禁止

除非您正在使用的应用程序的唯一目的是进行按位运算,否则最好保持规则启用(因为就像其他任何人一样,容易产生这种错字) 。但是,如果您要做有一个有效的情况下可以按位使用,则disable the rule temporarily just 适用于该行或代码块,如下所示:

/* tslint:disable:no-bitwise */
const redColor = (decimalColor & 0xff0000) >> 16;
const greenColor = (decimalColor & 0x00ff00) >> 8;
const blueColor = decimalColor & 0x0000ff;
/* tslint:enable:no-bitwise */

别忘了重新启用该规则!

或一行:

// tslint:disable-next-line:no-bitwise
const redColor = (decimalColor & 0xff0000) >> 16;

如果使用ESLint,请参见documentation here

答案 1 :(得分:6)

  

按位运算符通常是拼写错误 - 例如bool1& bool2而不是bool1&& BOOL2。它们也可以成为过于聪明的代码的指标,降低了可维护性。

https://palantir.github.io/tslint/rules/no-bitwise/

答案 2 :(得分:1)

如果您查看 Docs

  

“JavaScript程序中的按位运算符非常罕见”

无论如何你可以禁用按位选项来停止警告。