Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class MaybeState {
- public readonly isJust: boolean = false;
- public readonly isNone: boolean = false;
- }
- export class Just<TData> extends MaybeState {
- public readonly isJust: boolean = true;
- public readonly data: TData;
- constructor(data: TData) {
- super();
- this.data = data;
- }
- }
- export class None extends MaybeState {
- public readonly isNone: boolean = true;
- }
- export default class Maybe<TData> {
- private state: MaybeState
- constructor(data?: TData) {
- this.state = data ? new Just<TData>(data) : new None();
- }
- public setJust(data: TData) {
- this.state = new Just<TData>(data);
- }
- public setNone() {
- this.state = new None();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement