Typescript: optional chaining

Gizelly Silva
2 min readJun 3, 2020

--

Optional chaining

Um recurso bastante útil do typescript(v3.7) é o optional chaining, ele é uma maneira de simplificar o acesso a valores de objetos aninhados quando é possível que uma referência ou função seja indefinida ou nula.

Para entender melhor, vamos usar um exemplo:

let user = {nome: '', email: '', address: null};
let street = user.address.street; // Error

O trecho de código acima irá lançar um erro:

`Uncaught TypeError: Cannot read property 'street' of null`

Isso acontece por que estamos tentando acessar uma propriedade ou chamar um método em um objeto null ou undefined. Fazendo uma verificação conseguimos resolver esse problema:

let user = {nome: '’, email: '’, address: null};
if (user && user.address && user.address.street) {
let street = user.address.street;
console.log(street) // undefined
}

Usando o optional chaining mas conhecido como “?.”, essa sintaxe se torna bem mais enxuta.
O código acima pode ser escrito da seguinte maneira:

let user = {nome: '', email: '', address: null};
let street = user?.address?.street;
console.log(street) // undefined

Outro recurso é o operador de coalescência nula ??”, ele é uma forma de retornar um valor padrão quando lidarmos com um null ou undefined.

Vamos combiná-lo com o optional chaining, reescrevendo nosso código:

let user = {nome: '', email: '', address: null};
let street = user?.address?.street ?? 'address not found';
console.log(street) // "address not found"

Como podemos notar o uso desses recursos nos ajuda a reduzir a quantidade de código, simplificando a leitura e a manutenção.

Referências

--

--

Gizelly Silva

Desenvolvedora Frontend com mais de 7 anos de experiência, apaixonada por criar interfaces web intuitivas e cativantes que encantam os usuários.