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
.