node-optional
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Optional Class

The Optional class is a utility that helps you handle values that may or may not be present. It provides a safer alternative to null checks and improves code readability.

Features

  • of: Creates an Optional instance with a value or null.
  • isPresent: Checks if a value is present.
  • isOptional: Checks if the value is null.
  • get: Retrieves the value if present, throws an error otherwise.
  • orElseThrow: Returns the value if present, or throws a custom exception with a message.

Installation

Install the package via npm:

npm install optional-class

Usage

Here’s how to use the Optional class in your TypeScript project:

import Optional from "optional-class";

// Creating an Optional with a value
const optionalValue = Optional.of("Hello, World!");

if (optionalValue.isPresent()) {
  console.log(optionalValue.get()); // Output: Hello, World!
}

// Creating an Optional with a null value
const emptyValue = Optional.of(null);

console.log(emptyValue.isOptional()); // Output: true

// Handling a non-present value with a custom exception
try {
  emptyValue.orElseThrow(Error, "No value present!");
} catch (e) {
  console.error(e.message); // Output: No value present!
}

API

static of<T>(value: T | null): Optional<T>

Creates an Optional instance with the provided value. If null is passed, the Optional will represent an empty value.

isPresent(): boolean

Returns true if the Optional contains a value, otherwise false.

isOptional(): boolean

Returns true if the Optional is empty (i.e., the value is null).

get(): T

Returns the contained value if present. Throws an error if the value is null.

orElseThrow<E extends Error>(exception: new (...args: any[]) => E, message: string): T

Returns the value if present. If the value is null, throws the specified exception with the provided message.

License

This project is licensed under the MIT License.

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.0.24latest

Version History

VersionDownloads (Last 7 Days)Published
1.0.24
1.0.10
1.0.00

Package Sidebar

Install

npm i node-optional

Weekly Downloads

4

Version

1.0.2

License

ISC

Unpacked Size

4.42 kB

Total Files

6

Last publish

Collaborators

  • pinomaker