We can't use bitwise operators in templates, but why are they not allowed by tslint within TypeScript code?
"no-bitwise": true,
Bitwise operations cannot be used on boolean, float, or double, or class types. They are called the bitwise operators because they are used to test, set, or shift the individual bits that make up a value.
16 : Bitwise Operators (i) Bitwise operators cannot be applied to float or double. They can be applied to integers only.
Python bitwise operators are used to perform bitwise calculations on integers. The integers are converted into binary format and then operations are performed bit by bit, hence the name bitwise operators. Python bitwise operators work on integers only and the final output is returned in the decimal format.
There are four bitwise operators in IDL: AND, NOT, OR, and XOR. For integer operands (byte, signed- and unsigned-integer, longword, and 64-bit longword data types), bitwise operators operate on each bit of the operand or operands independently.
Linters exist for multiple reasons: to help maintain consistent, clean and readable code, catch developer mistakes (e.g. unreachable code or unused variables) and to warn you about potentially bad practices even though they may technically be allowed.
As mentioned in the TSLint documentation
Bitwise operators are often typos - for example
bool1 & bool2
instead ofbool1 && bool2
. They also can be an indicator of overly clever code which decreases maintainability.
Since these types of typos are so much more common than actual valid uses of bitwise operators, TSLint forbids them by default.
Unless you're working on an application whose sole purpose is to do bitwise operations, it's best to keep the rule enabled (because just like anyone else you are prone to making this kind of typo). If however you do have a valid case to use bitwise, then disable the rule temporarily just for that line or block of code, like this:
/* tslint:disable:no-bitwise */
const redColor = (decimalColor & 0xff0000) >> 16;
const greenColor = (decimalColor & 0x00ff00) >> 8;
const blueColor = decimalColor & 0x0000ff;
/* tslint:enable:no-bitwise */
don't forget to re-enable the rule!
or for a single line:
// tslint:disable-next-line:no-bitwise
const redColor = (decimalColor & 0xff0000) >> 16;
If using ESLint, see documentation here
Bitwise operators are often typos - for example bool1 & bool2 instead of bool1 && bool2. They also can be an indicator of overly clever code which decreases maintainability.
https://palantir.github.io/tslint/rules/no-bitwise/
If you look at the Docs
"Bitwise operators are very rare in JavaScript programs"
anyhow you can disable the bitwise option to stop the warnings.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With