ts-result-type
v1.0.0
Published
Result type - inspired by Rust's Result type - union type, generic over Ok and Err - Result<Ok, Err>
Downloads
2
Maintainers
Readme
ts-result-type
Result type - inspired by Rust's Result type
This Result
module offers a mechanism for error handling using the Result
type, an effective pattern popular in languages like Rust. This module introduces two main constructs, Ok
and Err
, for expressive error handling without exceptions.
Table of Contents
Installation
npm install ts-result-type
pnpm add ts-result-type
yarn add ts-result-type
Usage
To represent a successful computation:
import type { Result } from 'ts-result-type'
import { Ok, Err } from 'ts-result-type'
const result = Ok(5)
console.log(result.isOk) // true
Examples:
- match: Process the value if it's an
Ok
.
const result = Ok(5)
const output = result.match(value => value * 2, _ => 0)
console.log(output) // 10
- getValueOrDefault: Get the contained value or a default.
const result = Ok(5)
console.log(result.getValueOrDefault(10)) // 5
- getValueOrCompute: Get the contained value or a default.
const result: Result<number, string> = Err("400")
console.log(result.getValueOrCompute(err => +err)) // 400
- map: Transform the value inside an
Ok
.
const result = Ok(5)
const transformed = result.map(value => value.toString())
console.log(transformed.match(val => val, _ => "")) // "5"
- mapErr: Transform the error inside an
Err
.
const errorResult = Err('Error!')
const transformed = errorResult.mapErr(error => error.length)
console.log(transformed.match(_ => 0, errorLength => errorLength)) // 6
Testing
To run tests:
npm run test
License
This project is licensed under the MIT License. See LICENSE.md for more details.