TypeScript 3.7 unterstützt jetzt den optionalen Verkettungsoperator . Daher können Sie Code schreiben wie:
const value = a?.b?.c;
Mit diesem Operator können Sie also auf Eigenschaften eines Objekts zugreifen, in denen sich das Objekt selbst befinden kann null
oder undefined
. Was ich jetzt gerne machen würde, ist im Grunde dasselbe, aber die Eigenschaftsnamen sind dynamisch:
const value = a?[b]?.c;
Dort erhalte ich jedoch einen Syntaxfehler:
Fehler TS1005: ':' erwartet.
Was mache ich hier falsch? Ist das überhaupt möglich?
PS: Der Vorschlag scheint zu implizieren, dass dies nicht möglich ist 😕 (aber vielleicht verstehe ich die Syntaxbeispiele falsch).
javascript
typescript
optional-chaining
Golo Roden
quelle
quelle
?.
Antworten:
Wenn Sie mit der Klammernotation und der optionalen Verkettung auf eine Eigenschaft zugreifen, müssen Sie zusätzlich zu den Klammern einen Punkt haben:
Dies ist die Syntax, die vom TC39-Vorschlag übernommen wurde , da der Parser ansonsten nur schwer herausfinden kann, ob dies
?
Teil eines ternären Ausdrucks oder Teil einer optionalen Verkettung ist.quelle
: