Uma dúvida, ao ínves de utilizar o "Optional Chaining" seria mais interresente tratar ou realizar alguma coisa antes de utilizar essa variável que pode ser undefined? como por exemplo:
if(user.name === undefined) {
faça alguma coisa
}
console.log(user.name)
Ou é mais comum utilizar o optional chaining mesmo?
Vou responder uma de suas perguntas:
seria mais interresente tratar ou realizar alguma coisa antes de utilizar essa variável que pode ser undefined?
Sim, mas quando você tem (por exemplo) varios objetos mesclados numa hiearquia grande (como degrau 3, etc), isso vira dor de cabeça Exemplo:
interface ExemploTipo{
degrau1?: {
degrau2?: {
degrau3?: {
algo?: string
}
}
}
}
Imagina fazer vários ifs para isso, claro que dá pra optimizar a estrutura, mas já da pra entender a idéia, é inviável.
Ao contrário, usando Optinal Chaining eu posso simplesmente:
const exemplo = ...; // alguma declaração ou chamada de função que retorne um objeto de ExemploTipo
let valor = exemplo?.degrau1?.degrau2?.degrau3?.algo; // o tipo vai ser string | undefined
Da pra usar o nullish colleasing também para colocar um "valor padrão" se essa expressão retorna undefined.