TypeScript · Senior · Запитання 46 з 75
Чим T extends object відрізняється від T extends {} в обмеженні дженерика?
- ✓Правильна відповідь:
object- не примітиви,{}- усе, крім null/undefined - 2Це одне й те саме обмеження з різним синтаксисом
- 3
{}дозволяє лише порожні об'єкти без властивостей
Пояснення
{} означає «будь-яке значення з властивостями», а в рядків і чисел властивості є, тому T extends {} приймає 'abc' і 42. Щоб дозволити лише об'єкти (включно з масивами й функціями), використовують object. Для «будь-чого, крім null/undefined» {} - саме те, що треба.