Que signifie l'opérateur ! (point d'exclamation) lors de l'accès à une propriété d'objet en TypeScript ?
Bonjour à tous ! J'ai commencé à étudier TypeScript récemment et je suis tombé sur une construction que je ne comprends pas. Dans le code d'un collègue, j'ai vu l'utilisation d'un point d'exclamation après une variable ou avant l'accès à une propriété d'objet. Par exemple :
```typescript
const userName: string | null = getUserName();
const length = userName!.length;
```
Ou encore cette variante :
```typescript
interface User {
name?: string;
email?: string;
}
function getUserEmail(user: User): string {
return user.email!;
}
```
Je comprends que `?` signifie une valeur optionnelle (peut être undefined ou null). Mais que fait `!` ? Est-ce une sorte d'opérateur d'accès forcé ? Cela ne provoquera-t-il pas une erreur à l'exécution si la valeur s'avère être null ou undefined ?
J'ai essayé de chercher sur Google, mais partout on parle de "non-null assertion operator". Honnêtement, ça a l'air un peu effrayant. Pouvez-vous expliquer en termes simples comment cela fonctionne et quand il est sûr de l'utiliser ?
Merci d'avance pour votre aide !
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Réusinage du code legacy en Swift : guide étape par étape pour iOS/macOS