UNPKG

type-plus

Version:
13 lines 526 B
import type { Brand } from '../nominal/index.js'; import type { IsEqual } from '../equal/equal.js'; import type { Widen } from '../utils/index.js'; export type Maybe<T> = Just<T> | None<T>; export type Just<T> = Brand<'maybe', T> & { unwrap(): T; }; export type None<T> = Brand<'maybe', void> & { unwrap(): T; }; export declare function just<T>(value: T): IsEqual<T, undefined | null> extends true ? None<T> : Just<Widen<NonNullable<T>>>; export declare function none<T>(): None<T>; //# sourceMappingURL=Maybe.d.ts.map