TypeScript · Senior · Frage 8 von 75
Wie behält man nur die Eigenschaften eines Typs, deren Werte Funktionen sind?
type Methods<T> = {
[K in keyof T as T[K] extends Function ? K : never]: T[K];
};- 1Ein auf
neverumbenannter Schlüssel fällt aus dem Ergebnis - 2Dieser Code erzeugt einen Compile-Fehler
- 3
as nevermacht den Werttyp der Eigenschaft zunever
Antwort zeigen
Richtige Antwort: Ein auf never umbenannter Schlüssel fällt aus dem Ergebnis
Erklärung
Ergibt der Ausdruck nach as den Typ never, fällt der Schlüssel weg. Das ist die übliche Technik, Schlüssel nach Werttyp zu filtern. Ohne as würde man zuerst die Union der Schlüssel berechnen und dann Pick anwenden.