O TypeScript 3.7 agora suporta o operador de encadeamento opcional . Portanto, você pode escrever código como:
const value = a?.b?.c;
Ou seja, você pode usar esse operador para acessar propriedades de um objeto, onde o próprio objeto pode estar null
ou undefined
. Agora, o que eu gostaria de fazer é basicamente o mesmo, mas os nomes das propriedades são dinâmicos:
const value = a?[b]?.c;
No entanto, recebo um erro de sintaxe:
erro TS1005: ':' esperado.
O que eu estou fazendo errado aqui? Isso é possível?
PS: A proposta parece sugerir que isso não é possível 😕 (mas talvez eu entenda errado os exemplos de sintaxe).
javascript
typescript
optional-chaining
Golo Roden
fonte
fonte
?.
Respostas:
Ao acessar uma propriedade usando a notação entre colchetes e o encadeamento opcional, você também precisa ter um ponto além dos colchetes:
Essa é a sintaxe adotada pela proposta do TC39 , porque, caso contrário, é difícil para o analisador descobrir se isso
?
faz parte de uma expressão ternária ou parte do encadeamento opcional.fonte
: