FuncType - v0.8.85
    Preparing search index...

    Type Alias Match<T, R>

    Pattern matching construct similar to Scala's match expressions. Enforces exhaustive matching and returns values.

    const result = Match(value)
    .case(x => x > 100, "large")
    .case(x => x > 50, "medium")
    .default("small")
    // Matching exact values
    const message = Match(status)
    .caseValue("pending", "Please wait...")
    .caseValue("success", "Completed!")
    .caseValue("error", "Failed")
    .default("Unknown")
    type Match<T extends Type, R extends Type> = {
        case: (
            predicate: (value: T) => boolean,
            result: R | ((value: T) => R),
        ) => Match<T, R>;
        caseValue: (match: T, result: R | (() => R)) => Match<T, R>;
        caseValues: (matches: T[], result: R | (() => R)) => Match<T, R>;
        default: (result: R | ((value: T) => R)) => R;
        getOrThrow: () => R;
    }

    Type Parameters

    Index

    Properties

    case: (
        predicate: (value: T) => boolean,
        result: R | ((value: T) => R),
    ) => Match<T, R>

    Add a case with a predicate

    caseValue: (match: T, result: R | (() => R)) => Match<T, R>

    Add a case that matches a specific value

    caseValues: (matches: T[], result: R | (() => R)) => Match<T, R>

    Add a case that matches multiple values

    default: (result: R | ((value: T) => R)) => R

    Default case - required to get result

    getOrThrow: () => R

    Get result if a case matched, throws if no match