Spaces:
Runtime error
Runtime error
File size: 664 Bytes
96ed566 |
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 34 35 36 37 38 39 40 41 42 |
export class Left<L, R> {
readonly value: L;
constructor(value: L) {
this.value = value;
}
isRight(): this is Right<L, R> {
return false;
}
isLeft(): this is Left<L, R> {
return true;
}
}
export class Right<L, R> {
readonly value: R;
constructor(value: R) {
this.value = value;
}
isRight(): this is Right<L, R> {
return true;
}
isLeft(): this is Left<L, R> {
return false;
}
}
export type Either<L, R> = Left<L, R> | Right<L, R>;
export const left = <L, R>(value: L): Either<L, R> => {
return new Left(value);
};
export const right = <L, R>(value: R): Either<L, R> => {
return new Right(value);
};
|