読者です 読者をやめる 読者になる 読者になる

howdylikes

Google Developersってわかりづらいよね

IntellijIDEAでTypeScriptのコード補完

TypeScriptの設定

Enable TypeScript CompillerをON

f:id:howdy39:20160125212255p:plain

AngularJSのライブラリをダウンロードしてみる

f:id:howdy39:20160126084844p:plain f:id:howdy39:20160126084521p:plain

この状態でコード補完が微妙に効く

f:id:howdy39:20160126122816p:plain

several definitionってのは 複数定義されているから出せない?ってことなのですが、よくわからない。
ちなみにこのtsを自動トランスパイルしたjsの場合は以下のようにちゃんと引数まで出てきます。

f:id:howdy39:20160126123041p:plain

$scopeを解釈していないため$waではじまるものを適当に引っ張っているみたいです。
なので後述する型定義ファイルの追加$scopeの型指定をすればちゃんとコード補完されます。

この状態だとトランスパイル時にエラー

つまりこのライブラリの追加というのはコード補完時の参照であってトランスパイル時の参照ではないということですかね。

Error:(4, 1) TS2304: Cannot find name 'angular'.

f:id:howdy39:20160127082051p:plain

型定義ファイルの追加

これでトランスパイル時に参照してくれるはず!

tsdというツールを使用

github.com

tsd initで初期化

f:id:howdy39:20160126124650p:plain

tsd query angular -rosa installで定義ファイルをDL

f:id:howdy39:20160126124737p:plain

定義を追加

/// <reference path="./typings/tsd.d.ts" />

エラーが消えました!

f:id:howdy39:20160127082411p:plain

コード補完もちゃんと効きます。

f:id:howdy39:20160127084248p:plain

まとめ

  • JavaScriptのライブラリ追加はコード補完用
  • 定義ファイルの追加をすればトランスパイル時のエラーは消える
  • 定義ファイルの追加をすればJavaScriptのライブラリ追加をしなくてもコード補完される模様(同階層のjsだったり定義ファイルの追加でIDEAが自動で解釈してくれるみたい

IDEAは賢すぎて逆にわかりづらい。
TypeScriptはイイ。