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; |