TypeScript suporta o operador ?. e qual é o nome correto?
Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com um problema. Frequentemente no código preciso acessar uma propriedade de um objeto que pode não existir. Por exemplo, tenho um objeto `user` que vem do servidor e ele pode ter um campo aninhado `profile.name`. Se eu escrevo `user.profile.name`, o TypeScript gera um erro dizendo que `profile` pode ser `undefined`. Eu sei que em JavaScript existe o operador `?.`, que permite acessar propriedades de forma segura. Mas não tenho certeza se o TypeScript o suporta e qual é o nome correto. Tentei escrever assim:
```typescript
interface User {
profile?: {
name?: string;
};
}
const user: User = {};
console.log(user.profile.name); // Erro: Object is possibly 'undefined'
```
Se eu adiciono `?.`, o erro desaparece:
```typescript
console.log(user?.profile?.name);
```
Mas não entendo: isso é uma feature do TypeScript ou apenas do JavaScript? E qual é o nome correto desse operador — "optional chaining", "ponto de interrogação"?