Der !-Operator (Ausrufezeichen) in TypeScript: Was macht er beim Zugriff auf eine Eigenschaft?
Hallo zusammen! Ich habe vor kurzem angefangen, TypeScript zu lernen, und bin auf eine seltsame Syntax mit einem Ausrufezeichen gestoßen. Ich habe diesen Code gefunden:\n\n```typescript\nlet name: string | null = getUserName();\nconsole.log(name!.toUpperCase());\n```\n\nIch verstehe, dass `name` entweder `string` oder `null` sein kann. Aber was macht dieses `!` nach `name`? Ohne es beschwert sich TypeScript: "Object is possibly 'null'". Damit funktioniert es. \n\nIst das ein Operator? Ändert es den Typ? Oder ist es nur eine Möglichkeit, dem Compiler zu sagen "halt die Klappe"? Wann ist es angemessen, es zu verwenden, und wann ist es gefährlich? Ich habe von optional chaining (`?.`) gelesen, aber das ist eine ganz andere Syntax.\n\nKönnt ihr mir in einfachen Worten erklären, was `!` (exclamation mark / bang) beim Zugriff auf ein Member eines Objekts macht? Und wie unterscheidet es sich von einer normalen Typbehauptung mit `as`?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen