Use rust-like optional and error-handling types API.
Some methods are missing because necessity and language specifics.
- Rust-like
Option
andResult
types - Optional type handling
- Error handling
- Transformable variants
Promise
Transformable
The code below needs to be written as needed.
아래의 코드는 필요시 직접 작성하세요.
$ pnpm add @bya2/rusty-container-api
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>;
}
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(); // optional
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());
- resolveOr
- resolveOrElse
- transposeAsync
- equal
- promise
- transposeAsync
- equal