React Native 0.56 provides native support of Optional Chaining Operator
i.e ?.
However the latest stable release of VS Code can not recognize this syntax and throw a TypeScript validation error:
[ts] Expression expected.
while no complie-time or eslint error was thrown.
How can I do to fix it?
Update on 2019/12/11:
Optional chaining is offically supported by TypeScript since 3.7! 😍
If you still meet this error, probably the TypeScript lib shipped with your VSCode is < 3.7.
You can fix it simply by installing the latest version of typescript (>= 3.7) to your workspace. (by npm or yarn as dev deps)
Then open the command palette, type tstv
, and switch the TypeScript version used for JS and TS features from VS Code's Version to Workspace's Version (make sure it's >= 3.7) and voila!
This is definitely an awesome feature, thanks your all and happy hacking!
To enable optional chaining, you need to install a package. At the time of writing, optional chaining is not natively supported in Javascript, it is a new feature introduced in ES2020. Until it is fully adopted we can get all the optional goodness by installing a package!
The optional chaining operator ( ?. ) enables you to read the value of a property located deep within a chain of connected objects without having to check that each reference in the chain is valid.
In TypeScript, optional chaining is defined as the ability to immediately stop running an expression if a part of it evaluates to either null or undefined .
Optional chaining was introduced in ES2020. According to TC39 it is currently at stage 4 of the proposal process and is prepared for inclusion in the final ECMAScript standard.
VS Code 1.41 supports optional chaining in both JavaScript and TypeScript files. This support includes syntax highlighting and IntelliSense.
If you are using VS Code 1.41+ and optional chaining is not working as expected, try:
Check your installed extensions. Some of them may not yet understand optional chaining, which could cause errors or bad syntax highlighting
If you are using a workspace typescript version, make sure it is TypeScript 3.7+
You can install JavaScript and TypeScript Nightly, then reopen VSCode.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With