hippofish/src/prelude/maybe.ts
Acid Chicken (硫酸鶏) 054220db70 リファクタリング (#4587)
* Use I cap

* Avoid _

* Use default value instead of optional boolean

* Bye useless variable

* Bye verbose try-catch
2019-04-14 17:18:17 +09:00

20 lines
306 B
TypeScript

export interface IMaybe<T> {
isJust(): this is IJust<T>;
}
export interface IJust<T> extends IMaybe<T> {
get(): T;
}
export function just<T>(value: T): IJust<T> {
return {
isJust: () => true,
get: () => value
};
}
export function nothing<T>(): IMaybe<T> {
return {
isJust: () => false,
};
}