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 | 1x 1x 1x 34x 20x 3x 3x | export enum ResultType { Success = 'Success', Failure = 'Failure', } interface SuccessType<E> { readonly type: ResultType.Success; readonly value: E; } interface FailureType<E> { readonly type: ResultType.Failure; readonly value: E; } export type Result<S, F> = SuccessType<S> | FailureType<F>; export const Success = <E>(value: E): SuccessType<E> => ({ type: ResultType.Success, value, }); export const Failure = <E>(value: E): FailureType<E> => ({ type: ResultType.Failure, value, }); export const isSuccess = <S, F>(result: Result<S, F>): result is SuccessType<S> => result.type === ResultType.Success export const isFailure = <S, F>(result: Result<S, F>): result is FailureType<F> => result.type === ResultType.Failure |