@bya2/rusty-container-api
v1.3.1
Published
Use rust-like optional and error-handling types API.
Downloads
10
Readme
Rusty Container API
Use rust-like optional and error-handling types API.
Some methods are missing because necessity and language specifics.
Table of Contents
Features
- Rust-like
OptionandResulttypes - Optional type handling
- Error handling
- Transformable variants
PromiseTransformable
Usage
The code below needs to be written as needed.
아래의 코드는 필요시 직접 작성하세요.
Installation
$ pnpm add @bya2/rusty-container-apiDeclaring types globally
This code can cause type conflicts, so you'll need to create and insert your own .d.ts file.
export declare global {
type Option<T> = import("@bya2/rusty-container-api").Option<T>;
function Some<T>(expr: T): Option<T>;
const None: Option<any>; // or const None<T>: Option<T>
type Result<T, E> = import("@bya2/rusty-container-api").Result<T, E>;
function Ok<T, E>(expr: T): Result<T, E>;
function Err<T, E>(expr: E): Result<T, E>;
}Initializing variants
And write that code in your setup file(.js), then import it at the top of your entry point.
import { defineOption, defineResult } from "@bya2/rusty-container-api";
defineOption(); // optional
defineResult(); // optionalDefining types
const a = Some(1) // Option<number>;
const b = None // Option<any>;
const c: Option<number> = None;
const d = Ok(1); // Result<number, unknown>
const e = Err("a"); // Result<unknown, string>
const f: Result<number, Error> = Ok(1);
const g = Err<number, Error>(new Error());API
Option
Result
Custom Methods
Option Interface
- [x] resolveOr
- [x] resolveOrElse
- [x] transposeAsync
- [x] equal
Result Interface
- [x] promise
- [x] transposeAsync
- [x] equal
