Skip to content

Tiny change to support branded numbers#370

Open
markusjohnsson wants to merge 1 commit intoblacha:masterfrom
markusjohnsson:support-branded-numbers
Open

Tiny change to support branded numbers#370
markusjohnsson wants to merge 1 commit intoblacha:masterfrom
markusjohnsson:support-branded-numbers

Conversation

@markusjohnsson
Copy link

I made a tiny addition to StrutEval which allows the use of branded numbers:

import { bp, StrutInfer, StrutType } from "binparse";

type BrandedId = number & { __brand: "BrandedId" };
const BrandedId: StrutType<BrandedId> = bp.lu32 as unknown as StrutType<BrandedId>;

type Resolved = StrutInfer<typeof BrandedId>;

// After:

// type Resolved = number & {
//     __brand: "BrandedId";
// }

// Before:

// type Resolved = {
//     toString: (radix?: number | undefined) => string;
//     toFixed: (fractionDigits?: number | undefined) => string;
//     toExponential: (fractionDigits?: number | undefined) => string;
//     toPrecision: (precision?: number | undefined) => string;
//     valueOf: () => number;
//     toLocaleString: {
//         (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): string;
//         (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
//     };
//     __brand: "BrandedId";
// }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant