typescript-nullable
Version:
A TypeScript Nullable<T> Type and Monad Compliant Utility Functions
27 lines (26 loc) • 1.15 kB
TypeScript
export declare type None = null | undefined;
export declare type Nullable<T> = T | None;
export declare const Nullable: {
andThen: {
<A, B>(func: (val: A) => Nullable<B>, nullable: Nullable<A>): Nullable<B>;
<A, B>(func: (val: A) => Nullable<B>): (nullable: Nullable<A>) => Nullable<B>;
};
ap: {
<A, B>(targetNullable: Nullable<A>, applicativeNullable: Nullable<(val: A) => B>): Nullable<B>;
<A, B>(targetNullable: Nullable<A>): (applicativeNullable: Nullable<(val: A) => B>) => Nullable<B>;
};
isNone: <T>(nullable: Nullable<T>) => nullable is null | undefined;
isSome: <T>(nullable: Nullable<T>) => nullable is T;
map: {
<A, B>(func: (val: A) => B, nullable: Nullable<A>): Nullable<B>;
<A, B>(func: (val: A) => B): (nullable: Nullable<A>) => Nullable<B>;
};
maybe: {
<A, B>(defaultVal: B, f: (a: A) => B, nullable: Nullable<A>): B;
<A, B>(defaultVal: B, f: (a: A) => B): (nullable: Nullable<A>) => B;
};
withDefault: {
<T>(defaultVal: T, nullable: Nullable<T>): T;
<T>(defaultVal: T): (nullable: Nullable<T>) => T;
};
};