Appearance
NoExtraProperties<T, U>: U extends infer V[] ? NoExtraProperties<V>[] : U & Impossible<Exclude<keyof U, keyof T>>
T
U
NoExtraProperties
V
Impossible
Exclude
• T
• U extends T = T