Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 1x 1x 1x 1x 64x 29x 7x | enum _OptionType {
Some, None,
}
/**
* @deprecated
* to check for type use `isNone` or `isSome`
*/
export const OptionType = _OptionType;
export interface SomeType<E> {
readonly type: _OptionType.Some;
readonly value: E;
}
export interface NoneType {
readonly type: _OptionType.None;
}
export type Option<E> = NoneType | SomeType<E>;
export const None: NoneType = {type: _OptionType.None};
export type Chooser<E, F> = (e: E) => Option<F>;
export const Some = <E>(value: E): SomeType<E> => ({
type: _OptionType.Some,
value,
});
export const isSome = <E>(option: Option<E>): option is SomeType<E> => option.type === _OptionType.Some;
export const isNone = <E>(option: Option<E>): option is NoneType => option.type === _OptionType.None;
|