Avatar ·

Was bedeutet der Operator ! (Ausrufezeichen) beim Zugriff auf eine Objekteigenschaft in TypeScript?

Hallo zusammen! Ich habe vor kurzem angefangen, TypeScript zu lernen, und bin auf eine für mich unverständliche Konstruktion gestoßen. Im Code eines Kollegen habe ich die Verwendung eines Ausrufezeichens nach einer Variable oder vor dem Zugriff auf eine Objekteigenschaft gesehen. Zum Beispiel:\n\n```typescript\nconst userName: string | null = getUserName();\nconst length = userName!.length;\n```\n\nOder diese Variante:\n\n```typescript\ninterface User {\n name?: string;\n email?: string;\n}\n\nfunction getUserEmail(user: User): string {\n return user.email!;\n}\n```\n\nIch verstehe, dass `?` einen optionalen Wert bedeutet (kann undefined oder null sein). Aber was macht `!`? Ist das ein Operator für erzwungenen Zugriff? Wird das einen Laufzeitfehler verursachen, wenn der Wert tatsächlich null oder undefined ist?\n\nIch habe versucht zu googeln, aber überall steht...