Skip to content

D4v1X/ts-optional-class

Repository files navigation

Optional

npm Build Coverage Status Code style: prettier License

Optional for Typescript inspired by the Java Optional.

Install

npm install --save ts-optional-class

Usage

Example:

import {Optional} from 'ts-optional-class/dist/optional';

const active: boolean = Optional
  .of(user)
  .map(user => user.active)
  .orElse(false);

API

You have four ways to create an optional:

Optional.empty();
Optional.of(value); // throws error if value is null
Optional.ofNullable(value); // throws error if value is undefined
Optional.ofAnything(value); 

Operations

  empty(): Optional<T>;
  
  of(value: T): Optional<T>;
  ofNullable(value: T | null): Optional<T>;
  ofAnything(value: T | null | undefined): Optional<T>;
  
  get(): T;
  isPresent(): boolean;
  ifPresent(func: (value: T) => void): void;
  filter(predicate: (value: T) => boolean): Optional<T>;
  map<U>(mapper: (value: T) => U): Optional<U>;
  flatMap<U>(mapper: (value: T) => Optional<U>): Optional<U>;
  orElse(other: T): T;
  orElseGet(supplier: () => T): T;
  orElseThrow<X extends Error>(errorSupplier: () => X): T;

  toString(): string;

About

Optional for Typescript inspired by the Java Optional.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published