type-plus
Version:
Provides additional types for TypeScript.
13 lines • 526 B
TypeScript
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