@beenotung/tslib
Version:
utils library in Typescript
21 lines (20 loc) • 603 B
TypeScript
import { Either } from './either';
/**
* Created by beenotung on 2/16/17.
*/
export interface Maybe<A> {
isJust: boolean;
isNothing: boolean;
map: <B>(f: (a: A) => B) => Maybe<B>;
get(): A;
withDefault(a: A): Maybe<A>;
then(f: (a: A) => void): Maybe<A>;
otherwise(f: () => void): Maybe<A>;
toEither<E>(e: E): Either<E, A>;
}
export declare const Nothing: Maybe<any>;
export declare namespace Maybe {
function fromNullable<A>(a: A): Maybe<A>;
function or<A>(a: Maybe<A>, b: Maybe<A>): Maybe<A>;
function and<A, B>(a: Maybe<A>, b: Maybe<B>): Maybe<[A, B]>;
}