miyabihitoの日記

個人的な技術メモ

TypeScript

TypeScript
http://www.typescriptlang.org/

■概要
米Microsoftが開発したJavaScriptを拡張した言語
構文的にJavaScriptのスーパーセットとなっている
=>JavaScriptのライブラリをそのまま使える。
C#の開発者らが開発した

TypeScriptで書かれたソースをJavaScriptにコンパイルする
コンパイラ自身もTypeScriptで書かれ、Apache License 2.0 で公開されている。

■特徴
・拡張子 .ts
・型システムが強化され、コンパイル時に型チェックや型推論が行われる。
(違反していても警告が表示されるだけで、コンパイルは通る)
型を明示する構文も用意されている。

Type annotation
function func (param: string)
コンパイル結果:Supplied parameters do not match any signature of call target

・クラスベースのオブジェクト指向を実装(extendsで継承もできる)
・モジュール(名前空間
・インタフェース
interface Person {
name: string;
age: number;
}


■環境
・Node.jsのパッケージとしてインストールし、コマンドラインでコンパイル(tscコマンド)
Visual Studio 2012向けのプラグイン、vim emacsのシンタックスファイルが用意されている
http://www.typescriptlang.org/Playground/で、JavaScriptへの変換を行える。
(入力補助や文法違反表示もされる)

■導入
Mac OS X にて
http://nodejs.org/よりnode.jsをインストール
・$ sudo npm install -g typescript
npm http GET https://registry.npmjs.org/typescript
npm http 200 https://registry.npmjs.org/typescript
npm http GET https://registry.npmjs.org/typescript/-/typescript-0.8.1.tgz
npm http 200 https://registry.npmjs.org/typescript/-/typescript-0.8.1.tgz
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
typescript@0.8.1 /usr/local/lib/node_modules/typescript


■資料
http://itpro.nikkeibp.co.jp/article/NEWS/20121002/427001/
http://www.atmarkit.co.jp/news/201210/02/typescript.html
https://sites.google.com/site/jun1sboardgames/programming/typescript

■感想
これを使えば、クラスベースのコードをプロトタイプベースでどう実装するのかを、
コンパイルしたコードから学べる?!