我们不能在模板中使用按位运算符,但为什么在TypeScript代码中tslint不允许它们?
"no-bitwise": true,
答案 0 :(得分:11)
出现Linter的原因有很多:帮助保持一致,整洁和可读的代码,发现开发人员错误(例如,无法访问的代码或未使用的变量),并就可能存在的不良做法向您发出警告,即使在技术上可能允许这样做。
中所述按位运算符通常是拼写错误-例如
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。它们也可以成为过于聪明的代码的指标,降低了可维护性。
答案 2 :(得分:1)