2ヶ月前のブログエントリーで Aurelia という次世代のクライアントサイドフレームワークについて書きましたが、Aureliaの開発が更に進んでいて、私たちもそれに追随してサンプルアプリケーションの Typescript のバージョンを更新しました。変更個所をご紹介したいと思います。
リポジトリはこちらです。gulp のみで動作し、IDEに依存していません。
Typescript 1.5.0-beta の利用
Typescript 1.5で幾つか新しいフィーチャーが導入されますが、サンプルアプリケーションでは特に以下の2つのを採用しています。
- ES7 Decorators
- ES6 Modules
ES7 Decorators
Typescript では以下のように使っています。
詳しくは仕様を参考にしてください。
ES6 Modules
Typescript 1.4まで独自のモジュールのインポート・エキスポートシンタクスが使われていましたが、1.5から ES6のシンタクスもサポートされています。幾つかの例は以下の通りになります。
インポート・エキスポートシンタクスは結構豊かになりました。詳しくは仕様を参考にしてください。
モジュールのインポート・エキスポート方法が変わったことに伴って、Typescript 用の型の定義のファイル(*.d.ts)の変更も必要となりました。Typescript 対応をしている Aurelia のチームメンバー Mike Graham さんがこの作業を部分的に行ってくださったので、今回も彼の Aurelia 用の *.d.ts ファイルを使わせていただきました。
ちなみに、彼が Typescript で Aurelia というブログエントリーを書いているのですが、コメントに面白い議論がありました。 Aureliaはもともと JavaScript で書かれたフレームワークですから、 *.d.ts ファイルを手動で作る必要がありますが、この作業は結構大変で、また間違いやすいものです。*.d.ts ファイルを自動で作成するために、幾つかのオプションが提案され、ブログの読者に向けて投票のお願いがありました。オプションの中に、Aurelia 自体を Typescript で書き換える(こうすると、Typescript のコンパイラが *.d.ts をおまけで作ってくれます)というオプションもあって、読者のコメントを読むと、このオプションが圧倒的に人気があることがわかります。実現されたら、Aurelia のソースは Typescript で管理されることになります。
Angular 2.0 も Typescript で実装されることが確定しているようなので、大きいフレームワークのソースを Typescript で管理する方針が明らかになっています。ますます、Typescript 自体の人気も上がっています。
フレームワークは Typescript で実装されていても、もちろんアプリケーションを作るときに、普通に JavaScript を使うのは大丈夫です。この機会にTypescript を採用してみてはいかがでしょうか?