From fcdcfe9b15b0d22e90bbd3edafa32688bc4b0587 Mon Sep 17 00:00:00 2001 From: Henrique Inonhe Date: Mon, 16 Oct 2023 15:49:46 -0300 Subject: [PATCH] `OverrideProperties`: Fix autocomplete in the type (#712) --- source/override-properties.d.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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;