typed-numbers
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

TypedNumbers

Super simple type-safe fixed-length integers for TypeScript/JavaScript

NPM VERSION NPM DOWNLOADS DEPENDENCIES

AboutInstallationUsageNaming SchemeLicense

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';

License

MIT License

Package Sidebar

Install

npm i typed-numbers

Weekly Downloads

7

Version

1.0.5

License

MIT

Unpacked Size

87.9 kB

Total Files

16

Last publish

Collaborators

  • jonasgeiler