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>[] |