Defining different kinds of numbers for a more precise mapping of types can be a necessity JavaScript has a unique type Number covering both integer and float numbers . For instance, a perfect mapping with WebAssembly number types can be very useful for a JavaScript module interacting with a Wasm module. Therefore, TypexJS defines a few subsidiary types:

Type Suffix
32-bit integer _i
64-bit integer _i1
128-bit integer _i2
32-bit float _f
64-bit float _f1

These specifiers use one letter, either i or f i for an integer number
f for a float number
, and eventualy append a number 1 or 2 1 for a 64-bit number
2 for a 128-bit number
for the number width in bits.

To memorize easily those number specifiers, one has to think that numbers are at least 32-bit wide and the number appended after the specifier letter means: left shift 32 (bits) by 1 or 2. 64 = 32 << 1
128 = 32 << 2
for the sake of brevity, there is no 0 after the letter (i or f) for 32-bit number types
.