TypeScript 3.7 sekarang mendukung operator perangkaian opsional . Karenanya, Anda dapat menulis kode seperti:
const value = a?.b?.c;
Yaitu, Anda dapat menggunakan operator ini untuk mengakses properti dari suatu objek, di mana objek itu sendiri mungkin null
atau undefined
. Sekarang apa yang ingin saya lakukan pada dasarnya sama, tetapi nama properti dinamis:
const value = a?[b]?.c;
Namun, di sana saya mendapatkan kesalahan sintaksis:
kesalahan TS1005: ':' diharapkan.
Apa yang saya lakukan salah di sini? Apakah ini mungkin?
PS: Usulan itu sepertinya menyiratkan bahwa ini tidak mungkin 😕 (tapi mungkin saya salah mengambil contoh sintaks).
javascript
typescript
optional-chaining
Golo Roden
sumber
sumber
?.
Jawaban:
Saat mengakses properti menggunakan notasi braket dan perangkaian opsional, Anda juga harus memiliki titik di samping tanda kurung:
Ini adalah sintaks yang diadopsi oleh proposal TC39 , karena kalau tidak sulit bagi parser untuk mencari tahu apakah ini
?
adalah bagian dari ekspresi ternary atau bagian dari perangkaian opsional.sumber
: