function.d.ts 1.1 KB

123456789101112131415161718192021222324252627282930
  1. export interface F0<R> {
  2. (): R;
  3. }
  4. export interface F1<A0, R> {
  5. (a0: A0): R;
  6. }
  7. export interface F2<A0, A1, R> {
  8. (a0: A0, a1: A1): R;
  9. }
  10. export interface F3<A0, A1, A2, R> {
  11. (a0: A0, a1: A1, a2: A2): R;
  12. }
  13. export declare class Maybe<T> {
  14. private readonly t;
  15. static nothing: Maybe<any>;
  16. static lift<T>(t: T | undefined): Maybe<T>;
  17. static all<T0, T1>(t0: Maybe<T0>, t1: Maybe<T1>): Maybe<[T0, T1] | undefined>;
  18. private constructor();
  19. bind<R>(fn: F1<T, Maybe<R>>): Maybe<R | undefined>;
  20. fmap<R>(fn: F1<T, R>): Maybe<R | undefined>;
  21. get isNothing(): boolean;
  22. get isSomething(): boolean;
  23. catch(def: () => Maybe<T>): Maybe<T>;
  24. unwrap(): T | undefined;
  25. }
  26. export declare function unwrapFirst<T>(ts: Maybe<T>[]): T | undefined;
  27. export declare function all<T>(...preds: F1<T, boolean>[]): F1<T, boolean>;
  28. export declare function any<T>(...preds: F1<T, boolean>[]): F1<T, boolean>;
  29. export declare function ifTrue<T>(pred: F1<T, boolean>): F1<T, Maybe<T | undefined>>;
  30. export declare function listToMaybe<T>(ms?: Maybe<T>[]): Maybe<(T | undefined)[]> | Maybe<undefined>;