TypeScript · Senior · Pytanie 46 z 75
Czym T extends object różni się od T extends {} jako ograniczenie generyka?
- ✓Poprawna odpowiedź:
object- nie-prymitywy,{}- wszystko poza null/undefined - 2To samo ograniczenie zapisane inną składnią
- 3
{}dopuszcza tylko puste obiekty bez właściwości
Wyjaśnienie
{} oznacza „dowolną wartość z właściwościami”, a stringi i liczby mają właściwości, więc T extends {} przyjmie 'abc' i 42. Aby dopuścić tylko obiekty (w tym tablice i funkcje), użyj object. Dla „wszystkiego poza null/undefined” {} jest dokładnie tym, czego trzeba.