(-> % read write unlearn)

All opinions expressed are solely my own and do not express the views or opinions of my employer.

VisualStudioCodeでjavascriptのDecoratorの構文を扱う

SublimeTextにtypescriptのサポートを入れようとしたら面倒そうだったので、VisualStudioCodeをインストールした。しかし、結局あまりts書いてない。ionicの2(beta)を触ってるんだけど、ionicのJavascriptはTypescriptじゃなくて、素のJSだった。

ionicのJavascriptのコードでは、Decoratorが普通に使われているんだけど、それがVScodeでエラー表示になる。で、エラー箇所をホバーするとダイアログで「experimentalDecoratorsオプションを有効にすればこのエラーは消えるよ」って言われるんだけど、それをどこに設定すればいいか分からなかったのでメモ。

1.プロジェクトのルートディレクトリにjsconfig.jsonという名前のファイルを作成。

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "module": "amd",
        "target": "ES6" 
    }
}

2.「Shift + Command + P」 or 「メニューバー → ViewCommand Palette...
で、コマンドパレットを開いて

3.Reload Javascript Projectを実行。

ちなみに、設定のmoduleとかtargetの値は、書き換えようとすると説明がダイアログで表示される。利用可能な値もそこに書かれている。VScodeめっちゃ親切。VScodeは全体的に使いやすい。IDE(なのかな?)の割に軽いし良い。

ionicのJavascriptはES7(ES2016?)なのかな?でもES7のDecoratorとTypescriptのDecoratorは一緒なSyntaxなのかな?なんか知らんことが多い。。

参考