@metreeca/blue - v0.10.0
    Preparing search index...

    Type Alias Composition<E, C>

    Composition: Merged<Prototype<E> & Omit<Inheritance<C>, keyof E>>

    Composes the resource model from local entries and inherited template.

    Locally-redeclared keys are taken from Prototype: the child slot replaces the inherited contribution wholesale; non-overridden inherited keys flow through from Inheritance. Mirrors at the type level the override semantics enforced by resource on the runtime side. The result is merged into a single flat property list, so local and inherited entries read alike and both keep the optional keys Relaxed assigns to entries admitting absence.

    Type Parameters

    • E extends Members

      The local entries record type

    • C

      The constraints type providing the inherited template via Inheritance

    Subtracting keyof E from the inherited side before intersection is required because TypeScript intersection is order-insensitive: without the subtraction the parent's contribution is retained alongside the child's narrowing, leaving residue such as string & { readonly "0": string; readonly "1": Locales } on slots narrowed via single-variant union narrowing (Form 1).