TypeScript 3.7 obsługuje teraz opcjonalny operator łańcuchowy . Dlatego możesz napisać kod taki jak:
const value = a?.b?.c;
Tj. Możesz użyć tego operatora, aby uzyskać dostęp do właściwości obiektu, w którym sam obiekt może być null
lub undefined
. Teraz chciałbym zasadniczo zrobić to samo, ale nazwy właściwości są dynamiczne:
const value = a?[b]?.c;
Jednak pojawia się błąd składniowy:
błąd TS1005: oczekiwany „:”.
Co robię tutaj źle? Czy to w ogóle możliwe?
PS: Propozycja wydaje się sugerować, że nie jest to możliwe 😕 (ale może źle rozumiem przykłady składni).
javascript
typescript
optional-chaining
Golo Roden
źródło
źródło
?.
Odpowiedzi:
Podczas uzyskiwania dostępu do właściwości za pomocą notacji w nawiasach i opcjonalnego łączenia łańcuchowego, oprócz nawiasów musisz także mieć kropkę:
Jest to składnia przyjęta przez propozycję TC39 , ponieważ w przeciwnym razie analizator składni nie będzie w stanie ustalić, czy
?
jest to część wyrażenia potrójnego, czy część opcjonalnego tworzenia łańcuchów.źródło
: