typed-numbers
v1.0.5
Published
Super simple type-safe fixed-length integers for TypeScript/JavaScript
Downloads
33
Maintainers
Readme
About
I've made this library while building a little Intel 8080 emulator in JavaScript.
I noticed the lack of typed numbers in JavaScript, and how useful they could be, and then made this idea into a whole library!
Installation
With npm:
$ npm install typed-numbers
With pnpm (recommended):
$ pnpm install typed-numbers
With yarn:
$ yarn add typed-numbers
or you can directly add it to your website via unpkg:
<script src="https://unpkg.com/typed-numbers"></script>
Usage
If this project gains more attention I'll add some documentation!
import { u8, u16 } from 'typed-numbers';
// Function that takes only 16-bit unsigned integers:
function getFirstByte(num: u16): u8 {
return u8(num & 0xf);
}
getFirstByte(127); // -> ERROR!
getFirstByte(u8(127)); // -> ERROR!
getFirstByte(u16(127)); // -> 15
// Define a 8-bit unsigned integer:
const num = u8(255);
// Add 1 (wrapped addition)
num = u8(num + 1);
// Output result
console.log(num); // -> 0
Naming scheme
The library uses the fixed-length integer naming scheme from Rust.
If you want to use another naming scheme just rename the types at import:
import { i8 as int8 } from 'typed-numbers';
or:
import { i8 as byte } from 'typed-numbers';