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

express 4 + node + typescript で typings/node/node.d.ts(255,26): error TS2304: Cannot find name 'DataView'. のエラー

Node.js

以下のエラーが出た。

typings/node/node.d.ts(255,26): error TS2304: Cannot find name 'DataView'.
typings/node/node.d.ts(269,21): error TS2304: Cannot find name 'Map'.
typings/node/node.d.ts(278,21): error TS2304: Cannot find name 'Set'.
typings/node/node.d.ts(288,25): error TS2304: Cannot find name 'WeakMap'.

定義ファイルに記載されている DataView, Map, Set, WeakMap が存在しないらしい。
で、これらは es6 の機能。

利用しているJS(今回はnode)がes5にしか対応していないので、
そもそも DataView, Map, Set, WeakMap が存在しないみたい。

上記の定義を定義ファイルから削除することで解決しました。
解決とは言えない感じはするけど・・・。

--- 追記 2015/06/21 ---
tscコマンドのオプションに --target があって、
これはJSのes3, es5, es6 を指定してトランスパイルできる。
なので、コンパイル時に

$ tsc --target es6 - test.ts

ってやると上記のエラーは出なくなる。
ただし、es6を指定すると --module オプションで
amd or commonjs を指定してトランスパイルすることはできない。
-------------------------