TypeScript · Middle · Pytanie 29 z 75
Dlaczego Object.keys(user) zwraca string[], a nie (keyof User)[]?
- ✓Poprawna odpowiedź: W runtime obiekt może mieć też inne klucze
- 2To znany błąd TypeScript, który zostanie naprawiony w następnej wersji
- 3Bo klucze obiektu są zawsze stringami, nawet liczbowe
Wyjaśnienie
Obiekt typu User może zawierać dodatkowe właściwości (typ opisuje minimum), więc obietnica (keyof User)[] byłaby niebezpieczna. Jeśli masz pewność, użyj asercji typu lub otypowanego wrappera. To świadoma decyzja zespołu TypeScript.