TypeScript · Middle · Frage 4 von 75
Wie typisiert man getProp(obj, key), damit das Ergebnis vom Schlüssel abhängt?
- 1
function getProp<T>(obj: T, key: keyof any): T - 2
function getProp<T, K extends keyof T>(obj: T, key: K): T[K] - 3
function getProp(obj: object, key: string): unknown
Antwort zeigen
Richtige Antwort: function getProp<T, K extends keyof T>(obj: T, key: K): T[K]
Erklärung
K extends keyof T erlaubt nur existierende Schlüssel, und der indizierte Zugriff T[K] liefert den genauen Werttyp: getProp(user, 'age') → number. Die Variante mit any verliert die Typisierung, und string lässt Tippfehler durch.