TypeScript · Senior · Frage 46 von 75
Wie unterscheidet sich T extends object von T extends {} als generische Einschränkung?
- 1Es ist dieselbe Einschränkung in anderer Schreibweise
- 2
{}erlaubt nur leere Objekte ohne Eigenschaften - 3
object- keine Primitive,{}- alles außer null/undefined
Antwort zeigen
Richtige Antwort: object - keine Primitive, {} - alles außer null/undefined
Erklärung
{} heißt „jeder Wert mit Eigenschaften“, und Strings und Zahlen haben Eigenschaften, also nimmt T extends {} auch 'abc' und 42 an. Um nur Objekte zu erlauben (auch Arrays und Funktionen), nutzt man object. Für „alles außer null/undefined“ ist {} genau richtig.