mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-16 15:07:36 -07:00
f3cb1fd248
* Use I cap * Avoid _ * Use default value instead of optional boolean * Bye useless variable * Bye verbose try-catch
20 lines
306 B
TypeScript
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,
|
|
};
|
|
}
|