Import
import { Parser } from "@typed/router/Parser";Access Parser.OrElse through the imported Parser export. Its declaration below describes the member.
Signatures
interface OrElse<P extends Any, Q extends Any> extends Parser<unknown> {
readonly return: InputOf<this> extends infer Input extends string ? Apply<P, Input> extends infer R ? [
R
] extends [
never
] ? Pipe<Input, Q> : R extends readonly [
infer Value,
infer Rest extends string
] ? readonly [
Value,
Rest
] : never : never : never;
}Why
Alternatives do not leak partial consumption from a rejected branch.
Ownership and lifetime
TypeScript instantiates OrElse while parsing a string-literal input; partial results and unconsumed text exist only in the resulting type.
Property: return
Computes this type lambda’s parse result for its current input.
Property: return: Why
The local type-function protocol evaluates each parser combinator through this member without a parallel runtime object.
Property: return: Ownership and lifetime
TypeScript evaluates OrElse.return when the surrounding parser is applied; the associated result is erased and retains no input at runtime.