TypeScript · Senior · Frage 6 von 75
Wie setzt man DeepPartial<T> um?
type DeepPartial<T> = T extends object
? { [K in keyof T]?: DeepPartial<T[K]> }
: T;- 1Mit dem eingebauten Utility
Partial<T, 'deep'>aus lib.d.ts - 2Gar nicht: rekursive Type Aliases sind in TypeScript verboten
- 3Mit einem rekursiven Mapped Type, der auf jeder Ebene
?hinzufügt
Antwort zeigen
Richtige Antwort: Mit einem rekursiven Mapped Type, der auf jeder Ebene ? hinzufügt
Erklärung
Type Aliases dürfen auf sich selbst verweisen. Eine echte Umsetzung behandelt Arrays, Funktionen und Date gesondert, damit sie nicht in Eigenschaften „zerlegt“ werden. Tiefe Rekursion hat ein Limit für Instanziierungen, riesige Typen bremsen also den Compiler.