Import
import { MatchAst } from "@typed/router/AST";Access MatchAst.Catch through the imported MatchAst export. Its declaration below describes the member.
Signatures
interface Catch {
type: "catch";
matches: ReadonlyArray<MatchAst>;
f: (cause: RefSubject<Cause<any>>) => Fx<any, any, any>;
}Why
Complete Effect causes remain available to fallback UI rather than collapsing to strings.
Ownership and lifetime
Catch describes plain readonly AST data. Routes and Matchers retain the concrete nodes they receive by reference; the type itself owns no resource.
Property: f
The reactive complete-cause handler attached to a catch AST node.
Property: f: Why
Fallback output can observe changing Effect causes while preserving typed Fx composition.
Property: f: Ownership and lifetime
The handler function is retained by identity. The catch manager owns its cause RefSubject and fallback Fx in a child Scope while the boundary remains selected.
Property: matches
The ordered child matcher nodes wrapped by this boundary.
Property: matches: Why
Order is preserved for candidate and guard fallthrough.
Property: matches: Ownership and lifetime
The catch boundary retains this ordered child array by reference; active boundary Scopes are created only when its Matcher runs.
Property: type
The discriminant identifying this AST variant.
Property: type: Why
Exhaustive switches can interpret syntax without instanceof checks or hidden classes.