BT

TypeScript 1.4がリリース

| 作者: David Iffland , 翻訳者 徳武 聡 投稿日 2015年2月2日. 推定読書時間: 1分未満 |

原文(投稿日:2015/01/22)へのリンク

MicrosoftはTypeScript 1.4をリリースした。これは、同社のJavaScript言語の拡張の最新バージョンだ。ユニオン型のような新しい特徴が追加され、かつ、ECMAScript 6をターゲットにするモードも備えている。

ユニオン型は期待を集めていた特徴だ。JavaScriptのコードの場合、関数のパラメータは実行時にチェックされ、振る舞いが決まる。このような場合、TypeScriptのユニオン型が型チェックを改善する。リリースの発表には、次のような例が記載されている。

function f(x: number | number[]) {
  if (typeof x === "number") {
    return x + 10;
  }
  else {
    // return sum of numbers
  }
}

typeof型のガードによって、条件に基づいたことなる型の推論ができる。FacebookのFlowもに多様な型のチェックをサポートしている。

DefinitelyTypedプロジェクトの貢献者であるJohn Reilly氏はTypeScript 1.4の前と後angular-route.d.tsの違いについて示している。

TypeScript 1.4以前は関数をオーバーロード可能でしたが、インターフェースのメンバをオーバーロードはできません。ということは、このようなプロパティをモデル化する唯一の方法は、すべてのシナリオに適合する最良の共通型を見つけることでした。つまり、常に任意型を使うことになります。この方法はうまくいきますが、関数を利用する側のコードに型の安全を保証しません。

ES6の機能であるletconstは1.4で使えるようになるが、ES6をターゲットにしてコンパイルした場合にのみ使える。将来的には、MicrosoftはこのサポートをES5ターゲットに広げるつもりだ。ES5モードでも動作する新しいES6の特徴として基本テンプレート文字列がサポートされている。これは、テンプレートをシングルクオートで囲む。

var width = 640;
var height = 480;

var areaDisplay = `The pixel count is ${width * height}`;

タグ付きテンプレート文字列はES6をターゲットにしたときに利用できる。

MicrosoftはTypeScript 2.0で、"ECMAScript 6の標準を完全にサポート"することを目標にしている。バージョン1.4は重要な更新だが、まだやるべきことは残されている。Kangax ES6 Compatibility Tableによれば、TypeScriptの互換性は8%で、ライバルに遅れをとっている。しかし、TypeScriptの目的は単にES6との互換性を担保するだけではない。6to5のような純粋なES6翻訳機とは違う目標を持っている。

TypeScriptロードマップによれば、次のリリース(バージョン1.5)ではfor..ofとデストラクタをサポートする予定。

TypeScript 1.4はVisual Studio 2015 CTP5、Visual Studio 2013、NPM、TypeScript playgroundで利用できる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT