窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

TypeScript 3.7.x環境でVSCodeのIntelliSenseが効かなくなることとその対処法

3行まとめ

  • TS 3.7.xで補完が壊れるよ
  • 補完が壊れるのは3.8で直ったよ
  • VSCodeの補完には3.6.xか3.8 Betaを使おう

補完が効かないってどういう状態?

2019年11月にTypeScript 3.7.2がリリースされました。 Optional Chaining と Nullish Coalescingがサポートされて書きやすくなるぞーとウキウキしてVSCodeを開いたのですが、IntelliSenseで補完を出そうとすると

f:id:yamachu_co:20200115075150p:plain
abcって…文字じゃなくてこれは変数名だぞ!

こんな感じで変数の補完が効かなくなります。 そう、変数の補完だけが効かなくなるんです…Objectのプロパティなどの補完は効くという不思議状態。

こんなTweetをした後にもしかしておま環だと恥ずかしいのでチームの人にも色々試してもらったのですが、おま環ではないことが判明。

TypeScript 3.7.2 のリリース日にこんなIssueも立っていました。

TypeScript Server Error (3.7.2) Cannot read property 'symbol' of undefined · Issue #84549 · microsoft/vscode · GitHub

対処法

  1. TypeScript 3.7.xで導入された文法を使わないのであれば補完に3.6.xを使う。
  2. 変数は文字列として補完してくれるので、それで頑張って、プロパティの補完を使う。
  3. TypeScript 3.8.xを補完に使う。

が今の所の解決策となりました。

3の解決策を取るには

JavaScript and TypeScript Nightly - Visual Studio Marketplace

の拡張をインストールする必要があり、割とアグレッシブで人に勧めづらかったのですが

devblogs.microsoft.com

先日3.8 Betaがリリースされたので非常に敷居が下がった気がします。 TypeScript 3.8 Betaをどこかのディレクトリにインストールして、補完に使うTypeScriptのPATHをそこに向けるだけで上記の問題は解決するので、お困りの方はそちらを試してみて下さい。

補完に使うTypeScriptってどうやって向けるの?は公式ドキュメントで言うところの

TypeScript Compiling with Visual Studio Code

です。

2019年に作ったGitHubリポジトリを振り返る

この記事を見て、そう言えば今年はどんなリポジトリを公開したんだろうかと気になったのでやってみます。

pocke.hatenablog.com

対象リポジトリを抽出するのに

今年GitHubに作ったリポジトリを振り返ってみませんか? - pockestrap

を使用しました。

2019年に公開したリポジトリ

以上11個でした。

あまり今年は開発出来ていなかったなぁみたいな感覚があるので、来年はもうちょっと頑張りたい。