Kim*_*tes 5 lint bitwise-or typescript tslint
遗憾的是,这个有效的代码被 TSLint 的默认设置认为是疏忽的:
export const NO_FLAG: number = 0x0000;
export const DESTROY_FLAG: number = 0x0001;
export const NULL_FLAG: number = 0x0100;
export const START_FLAG: number = 0x0200;
export const STOP_FLAG: number = 0x0400;
export function getPackedFlags(destroy: boolean,
nullThing: boolean,
start: boolean,
stop: boolean): number {
const bitFlags: number = ((destroy) ? DESTROY_FLAG: NO_FLAG) |
((nullThing) ? NULL_FLAG: NO_FLAG) |
((start) ? START_FLAG: NO_FLAG) |
((stop) ? STOP_FLAG: NO_FLAG);
return bitFlags;
}
Run Code Online (Sandbox Code Playgroud)
执行上述操作会产生这种输出:
tslint --project ./tsconfig.json --format verbose --force
ERROR: (no-bitwise) C:/git/my-stuff/src/index.ts[393, 34]: Forbidden bitwise operation
ERROR: (no-bitwise) C:/git/my-stuff/src/index.ts[393, 34]: Forbidden bitwise operation
ERROR: (no-bitwise) C:/git/my-stuff/src/index.ts[393, 34]: Forbidden bitwise operation
Run Code Online (Sandbox Code Playgroud)
TSLint 的作者有一个策略,将其设置为默认错误。然而,Typescript 编译器和正确的编程用法表明这是 | 的正确使用。操作员。在某些情况下,您打算使用按位,称其为错误简直是愚蠢的。
我不知道如何根据具体情况关闭此 linting 问题,但保持全局设置不变。
幸运的是,您可以在单行基础上禁用此功能,如下所示:
export function getPackedFlags(destroy: boolean,
nullThing: boolean,
start: boolean,
stop: boolean): number {
// tslint:disable-next-line:no-bitwise
const bitFlags: number = ((destroy) ? DESTROY_FLAG: NO_FLAG) |
((nullThing) ? NULL_FLAG: NO_FLAG) |
((start) ? START_FLAG: NO_FLAG) |
((stop) ? STOP_FLAG: NO_FLAG);
return bitFlags;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |