@eeue56/ts-core
Version:
Core library for TypeScript inspired by Elm
18 lines (17 loc) • 1.06 kB
TypeScript
export declare type Nothing = {
kind: 'Nothing';
};
export declare type Just<A> = {
kind: 'Just';
value: A;
};
export declare type Maybe<A> = Just<A> | Nothing;
export declare function Just<A>(value: A): Maybe<A>;
export declare function Nothing<A>(): Maybe<A>;
export declare function isJust<A>(maybe: Maybe<A>): maybe is Just<A>;
export declare function isNothing<A>(maybe: Maybe<A>): maybe is Just<A>;
export declare function withDefault<A>(value: A, maybeValue: Maybe<A>): A;
export declare function map<A, Value>(func: (val: A) => Value, maybeValue: Maybe<A>): Maybe<Value>;
export declare function map2<A, B, Value>(func: (firstValue: A, secondValue: B) => Value, firstMaybeValue: Maybe<A>, secondMaybeValue: Maybe<B>): Maybe<Value>;
export declare function map3<A, B, C, Value>(func: (firstValue: A, secondValue: B, thirdValue: C) => Value, firstMaybeValue: Maybe<A>, secondMaybeValue: Maybe<B>, thirdMaybeValue: Maybe<C>): Maybe<Value>;
export declare function andThen<A, B>(func: (firstValue: A) => Maybe<B>, maybeValue: Maybe<A>): Maybe<B>;