¿Qué significa el operador ! (signo de exclamación) al acceder a una propiedad de objeto en TypeScript?
¡Hola a todos! Empecé a estudiar TypeScript recientemente y me encontré con una construcción que no entiendo. En el código de un colega vi el uso del signo de exclamación después de una variable o antes de acceder a una propiedad de objeto. Por ejemplo:
```typescript
const userName: string | null = getUserName();
const length = userName!.length;
```
O esta variante:
```typescript
interface User {
name?: string;
email?: string;
}
function getUserEmail(user: User): string {
return user.email!;
}
```
Entiendo que `?` significa valor opcional (puede ser undefined o null). Pero ¿qué hace `!`? ¿Es algún tipo de operador de acceso forzado? ¿No causará un error en tiempo de ejecución si el valor resulta ser null o undefined?
Intenté buscar en Google, pero en todas partes escriben sobre "non-null assertion operator". Honestamente, suena un poco aterrador. ¿Pueden explicar en palabras simples cómo funciona y cuándo es seguro usarlo?
¡Gracias de antemano por la ayuda!
No answers yet.
Inicia sesión para dejar una respuesta