diff --git a/source/override-properties.d.ts b/source/override-properties.d.ts index 1cbc0545..7eb3908a 100644 --- a/source/override-properties.d.ts +++ b/source/override-properties.d.ts @@ -25,5 +25,12 @@ type Fizz = OverrideProperties */ export type OverrideProperties< TOriginal, - TOverride extends {[Key in keyof TOverride]: Key extends keyof TOriginal ? TOverride[Key] : never}, + // This first bit where we use `Partial` is to enable autocomplete + // and the second bit with the mapped type is what enforces that we don't try + // to override properties that doesn't exist in the original type. + TOverride extends Partial> & { + [Key in keyof TOverride]: Key extends keyof TOriginal + ? TOverride[Key] + : never; + }, > = Merge;