Avatar ·

¡Operador ! (signo de exclamación) en TypeScript: ¿qué hace al acceder a una propiedad?

¡Hola a todos! Recientemente comencé a estudiar TypeScript y me topé con una sintaxis extraña con el signo de exclamación. Encontré este código: ```typescript let name: string | null = getUserName(); console.log(name!.toUpperCase()); ``` Entiendo que `name` puede ser `string` o `null`. Pero ¿qué hace este `!` después de `name`? Sin él, TypeScript se queja: "Object is possibly 'null'". Y con él, todo funciona. ¿Es algún tipo de operador? ¿Cambia el tipo? ¿O es solo una forma de decirle al compilador "cállate"? ¿Cuándo es apropiado usarlo y cuándo es peligroso? He leído sobre optional chaining (`?.`), pero aquí la sintaxis es completamente diferente. ¿Pueden explicar en palabras simples qué hace `!` (exclamation mark / bang) al acceder a un miembro de un objeto? ¿Y en qué se diferencia de una afirmación de tipo normal con `as`? ¡Gracias! <<>>

¿Qué es el operador ! (non-null assertion) en TypeScript?

Es el operador de afirmación de valor no nulo (non-null assertion operator). Le dice