TypeScript · Middle · Frage 29 von 75
Warum liefert Object.keys(user) string[] statt (keyof User)[]?
- 1Das ist ein bekannter TypeScript-Fehler, der in der nächsten Version behoben wird
- 2Weil Objektschlüssel immer Strings sind, auch numerische
- 3Zur Laufzeit kann das Objekt auch andere Schlüssel haben
Antwort zeigen
Richtige Antwort: Zur Laufzeit kann das Objekt auch andere Schlüssel haben
Erklärung
Ein Objekt vom Typ User kann zusätzliche Eigenschaften enthalten (der Typ beschreibt ein Minimum), also wäre das Versprechen (keyof User)[] unsicher. Ist man sicher, nutzt man eine Type Assertion oder einen typisierten Wrapper. Das ist eine bewusste Entscheidung des TypeScript-Teams.