Avatar ·

Operador ! (ponto de exclamação) em TypeScript: o que ele faz ao acessar uma propriedade?

Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com uma sintaxe estranha com ponto de exclamação. Encontrei este código: ```typescript let name: string | null = getUserName(); console.log(name!.toUpperCase()); ``` Eu entendo que `name` pode ser `string` ou `null`. Mas o que esse `!` faz depois de `name`? Sem ele, o TypeScript reclama: "Object is possibly 'null'". Com ele, tudo funciona. Isso é algum operador? Ele altera o tipo? Ou é apenas uma forma de dizer ao compilador "cala a boca"? Quando é apropriado usá-lo e quando é perigoso? Eu li sobre optional chaining (`?.`), mas aqui a sintaxe é completamente diferente. Vocês podem explicar em palavras simples o que o `!` (exclamation mark / bang) faz ao acessar um membro de um objeto? E qual a diferença dele para uma afirmação de tipo normal com `as`? Obrigado! <<>>

O que é o operador ! (non-null assertion) em TypeScript?

Este é o operador de afirmação de valor não nulo (non-null assertion operator). Ele diz