TypeScript prend-il en charge l'opérateur ?. et comment s'appelle-t-il correctement ?
Bonjour à tous ! J'ai récemment commencé à apprendre TypeScript et j'ai rencontré un problème. Souvent dans le code, j'ai besoin d'accéder à une propriété d'un objet qui peut ne pas exister. Par exemple, j'ai un objet `user` qui vient du serveur, et il peut avoir un champ imbriqué `profile.name`. Si j'écris `user.profile.name`, TypeScript génère une erreur indiquant que `profile` peut être `undefined`. Je sais qu'en JavaScript il existe l'opérateur `?.` qui permet d'accéder aux propriétés en toute sécurité. Mais je ne suis pas sûr que TypeScript le supporte et comment il s'appelle correctement. J'ai essayé d'écrire comme ceci :
```typescript
interface User {
profile?: {
name?: string;
};
}
const user: User = {};
console.log(user.profile.name); // Erreur : Object is possibly 'undefined'
```
Si j'ajoute `?.`, l'erreur disparaît :
```typescript
console.log(user?.profile?.name);
```
Mais je ne comprends pas, est-ce une fonctionnalité de TypeScript ou simplement de JavaScript ? Et comment s'appelle correctement cet opérateur — "chaînage optionnel", "point d'interrogation" ?
No answers yet.
Connectez-vous pour laisser une réponse