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];
};

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.

Do poczytania

Błąd w pytaniu

TypeScript · Senior · pytanie 8

Sprawdź się

Rozwiąż test TypeScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test