TypeScript · Senior · Pytanie 6 z 75
Jak zaimplementować DeepPartial<T>?
type DeepPartial<T> = T extends object
? { [K in keyof T]?: DeepPartial<T[K]> }
: T;- ✓Poprawna odpowiedź: Rekurencyjnym typem mapowanym, który dodaje
?na każdym poziomie - 2Wbudowanym narzędziem
Partial<T, 'deep'>z lib.d.ts - 3Nie da się: rekurencyjne aliasy typów są w TypeScript zabronione
Wyjaśnienie
Aliasy typów mogą odwoływać się do siebie. Prawdziwa implementacja powinna osobno obsłużyć tablice, funkcje i Date, by nie „rozbierać” ich na właściwości. Głęboka rekurencja ma limit instancjacji, więc ogromne typy spowalniają kompilator.