TypeScript · Middle · Запитання 29 з 75
Чому Object.keys(user) повертає string[], а не (keyof User)[]?
- ✓Правильна відповідь: У рантаймі в об'єкта можуть бути й інші ключі
- 2Це відомий баг TypeScript, який виправлять у наступній версії
- 3Бо ключі об'єкта завжди рядки, навіть числові
Пояснення
Об'єкт типу User може містити зайві властивості (тип описує мінімум), тому обіцяти (keyof User)[] було б небезпечно. Якщо ви впевнені, використовуйте твердження типу або типізовану обгортку. Це свідоме рішення команди TypeScript.