Kaizen
Browse modulesBookingsbookings/sharedTypes

Type Alias: ComposedShape<Caps *extends* readonly [`Capability`](../interfaces/Capability.md)<`any`, `any`>[]>

type ComposedShape<Caps extends readonly Capability<any, any>[]> = UnionToIntersection<ShapeOf<Caps[number]>>;

Defined in: shared/bookings/capabilities/compose.ts:47

The booking shape a composition requires = intersection of all capability shapes. NB: the constraint is Capability<any, any>[], NOT Capability[] (= Capability<unknown>[]). guard's host: Shape parameter makes Capability CONTRAVARIANT in Shape, so a Capability<Holdable> is not assignable to Capability<unknown> — the bare constraint rejects every real call. Capability<any, any> opts that position out of variance checking while ComposedShape still recovers full per-capability precision via infer S. (Verified against the repo's tsc 5.9 --strict; without this the §5 snippet does not compile.)

Type Parameters

Type Parameter
Caps extends readonly Capability<any, any>[]

On this page