Stage: 1, Gabriel Isenberg
Slack room at https://babeljs.slack.com/messages/proposal-opt-chaining/ (join at http://slack.babeljs.io/)
Spec Repo: https://github.com/claudepache/es-optional-chaining
TC39 Proposals: https://github.com/tc39/proposals
Slides: https://docs.google.com/presentation/d/11O_wIBBbZgE1bMVRJI8kGnmC6dWCBOwutbN9SWOK0fU/edit#slide=id.p
Figured we should discuss ideas earlier before someone tries to implement it in Babylon?
From the repo:
var street = user.address?.street; // in var street = user.address && user.address.street; // out
obj?.prop // optional property access obj?.[expr] // ditto func?.(...args) // optional function or method call new C?.(...args) // optional constructor invocation
In order to allow foo?.3:0
to be parsed as foo ? .3 : 0
rather than foo ?. 3 : 0
, a simple lookahead is added at the level of the lexical grammar (the ?.
token should not be followed by a decimal digit).
We don’t use the obj?[expr]
and func?(...arg)
syntax, because of the difficulty for the parser to distinguish those forms from the conditional operator, e.g. obj?[expr].filter(fun):0
and func?(x - 2) + 3 :1
.
jamen, kylekampy, schungx, yavorsky, yeze322 and 12 moregevgeny, kylekampy, jthomaschewski, schungx, ErikCupal and 1 more
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4