TypeScript · Senior · Pytanie 8 z 75
Jak zostawić tylko właściwości typu będące funkcjami?
type Methods<T> = {
[K in keyof T as T[K] extends Function ? K : never]: T[K];
};- ✓Poprawna odpowiedź: Przemapowanie klucza na
neverusuwa właściwość z wyniku - 2
as neverczyni typ wartości właściwościnever - 3Ten kod powoduje błąd kompilacji
Wyjaśnienie
Jeśli wyrażenie po as daje never, klucz jest pomijany. To standardowa technika filtrowania kluczy według typu wartości. Bez as trzeba by najpierw obliczyć unię kluczy, a potem zastosować Pick.