Open
Description
Search Terms
bitwise operators, integer type, int32
Suggestion
Add an int32
subtype for number
returned by TypeScript from bitwise operators.
function coerce(n: number): int32 {
return n | 0;
}
JavaScript bitwise operators coerce arguments to int32 and the return type of those operators will always be an int32.
This would not be a breaking change since int32
would be a subtype of number
. Only bitwise operations would change to return int32
s.
EDIT: I now recommend calling the type BitwiseInt32
so that user’s won’t see the type as a generic integer type.
Use Cases
Helps applications which are trying to take advantage of JavaScript implementations int32
optimizations. An application could ask for an int32
parameter to force coercion with n | 0
.
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.