¡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