DisallowExtraPropsRecursive | WebHare Platform SDK
WebHare Platform SDK
    Preparing search index...

    Type Alias DisallowExtraPropsRecursive<Actual, Contract>

    DisallowExtraPropsRecursive: Contract extends unknown[]
        ? Actual extends unknown[]
            ? DisallowExtraPropsRecursive<Actual[number], Contract[number]>[]
            : Contract
        : Contract extends object
            ? Actual extends Contract
                ? {
                    [K in keyof Contract]: K extends keyof Actual
                        ? DisallowExtraPropsRecursive<Actual[K], Contract[K]>
                        : Contract[K]
                } & { [K in Exclude<keyof Actual, keyof Contract>]: never }
                : Contract
            : Contract

    Given a type Contract and a type Actual that extends Contract, returns Contract with properties that are added in Actual with type never. If used in a function signature like this: <Actual extends Contact>(param: Actual & DisallowExtraPropsRecursive<Actual, Contract>, this has the effect that extra properties in Actual will be disallowed compile-time.

    Type Parameters