Windows で Visual Studio と node.js の両方の環境でTypeScriptを使おうとすると遭遇するかもしれない話です。
1.6.2 入ってるのはずなのに 1.0.3.0?
普段TypeScriptの開発をVisual Studioで行っています。が、ちょっとした理由でnode.jsのtscでコンパイルをしたいことが発生しました。
さっそくnpmでTypeScriptの1.6.2をインストールし、コマンドラインからtsc hoge.ts
みたいな感じでコンパイルを実行……したら、エラーとか出て文句言われました。
??
…気を取り直してtsc --version
でバージョン確認したら……なんと「1.0.3.0 」というバージョンが返ってきました。
『んなアホな』と思いnpm ls -g typescript
で確認すると、やはりnpmではちゃんと1.6.2が入っている模様。
環境変数のpathから削除する
原因はVSのアドオンとして入ってるTypeScriptコンパイラのパスが環境変数で設定されているから……でした。
システム環境変数のpathからC:\Program Files (x86)\Microsoft SDKs\TypeScript\
のエントリを削除すればOK。私の環境では1.0と1.4のパスが存在していました。
削除後、再度tscのバージョンを確認すると、ちゃんと1.6.2が返ってきました。
なおこの環境変数を削除しても、Visual Studioからのコンパイルは特に問題ないと思います*1*2。
まとめ?
なお、いくつか手元の環境を確認した限りこれは1.4までで、1.5以降はVSのTypeScriptアドオンをインストールしても環境変数に追加しないようです*3。ので、最近入れた人は問題ないかもしれません。