TypeScript optional chaining causes parse error #687
Description
Please refer to this minimal project, which contains a file src/main.ts
with the following code:
const val = null;
console.log(val?.prop);
javascript-typescript-langserver produces the following diagnostic on line 2:
ts: Expression expected. [1109]
This symptom suggests that perhaps somehow the language server is using a version or configuration of TypeScript which does not have support for optional chaining, added in TypeScript 3.7. However, every version of TypeScript on my machine is 3.9 or later.
As far as I can tell, no other syntax features are broken. I will note that optional chaining was previously working, but something changed when I migrated to a new machine. I have not been able to identify what could have caused the difference.
Environment information
Language server path: /usr/bin/javascript-typescript-stdio
$ javascript-typescript-stdio --version
2.11.3
$ npx which -a tsc
/home/raxod502/files/temp/example-project/node_modules/.bin/tsc
/usr/bin/tsc
$ ./node_modules/.bin/tsc --version
Version 3.9.6
$ tsc --version
Version 3.9.5
$ uname -a
Linux shallan 5.6.16-1-MANJARO #1 SMP PREEMPT Wed Jun 3 14:26:28 UTC 2020 x86_64 GNU/Linux
Language server installed from AUR
LSP client: Emacs lsp-mode revision 5c9959fdf0a7ea12031e6798a330beccbc55a771
LSP message log: available on GitHub Gist