Angular2.0とかAureliaとか書くのにtypescript環境が必要になったりしたのでvim環境を作ってみた。
- NeoBundle環境
- syntasticが入ってる
とりあえすプラグイン導入
調べてみたら
このふたつ見つけたけどガッツリ使うつもりもなかったしサクッと設定できる方のleafgarland/typescript-vimを導入
NeoBundle 'leafgarland/typescript-vim'
書いてみた
ためしにAngularのサンプルコードを書いてみた
@Component({
selector: 'my-app'
})
@View({
template: '<h1>Hello {{ name }}</h1>'
})
class MyAppComponent {
name: string;
constructor() {
this.name = 'Alice';
}
}
そしたらlintでエラーが
Decorators are only available when targeting ECMAScript 5 and higher.
Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
どうやらoptionで--target
をES5以上、--experimentalDecorators
を付けなきゃいけないらしい
tsconfig.json設定でどうにかなるかなと思いつくって見た
{"compilerOptions":{"outDir":"public","inlineSourceMap":true,"target":"ES6",//<--ここと"experimentalDecorators":true//<--ここ!},"filesGlob":["src/**/*.ts"]}
これではコンパイラの方の設定なのでもちろん効かないのでtslintの設定ファイルを作ればと思ったがtslintみてもよくわからない。路頭に迷ってたところでこんなissueを発見leafgarland/typescript-vim/issues/47
vimの設定のほうで解決できるとのこと
let g:syntastic_typescript_tsc_args ="--experimentalDecorators --target ES5"
こう設定すると見事に邪魔なエラーが消えた!
syntasticのほうでsyntastic_typescript_tsc_args
でoptionを設定するとそれを見てくれるとのことでした。
これで快適に開発できますね。
(tslintの設定で解決できるだろと思った方、ぜひ教えて下さい><)