TypeScriptとバージョン2.0へのパス

var t: [number, string] = [1, "hello"]; t = []; // Error t = [1]; // Error t = [2, "test"]; // Ok t = ["test", 2]; // Error t = [2, "test", true]; // Ok
      
      





今年の初めにTypeScript 1.0をリリースしたとき、開発者が実際にJavaScriptプロジェクトをスケーリングするのに役立つ言語の作成に焦点を当てました。 Mozilla Shumwayの 170,000行のコード、 Walmartの文房具Microsoft Azureでの豊富な経験など、100万行を超えるコードを含む、人々がそれを使って何をしたかを見るのはとても楽しかったです。



TypeScriptの目標は、この規模のプロジェクトを引き続きサポートし、JavaScriptのスケーリングに最適な言語にすることです。 バージョン1.1では、以前のコンパイラの4倍の速度で結果を生成できる高速で軽量のコンパイラをリリースしました。 また、新しいコンパイラーは、バージョン2.0に移行するときに確実に採用するよりも、新しい機能の追加に関してより柔軟です。



今日は、2番目のバージョンの計画についてお話しします。 GitHubのTypeScriptページ参加して 、TypeScriptをさらに改善することをお勧めします。



JavaScriptタイピングコミュニティの成長



JavaScriptのタイピングコミュニティは成長を続けており、これを見て喜んで参加しています。 今日のDefinitelyTypedには、さまざまなライブラリおよびフレームワークの700を超える.d.ts型付き記述が含まれており、600の貢献者の限界に近づいています。



また、JavaScriptタイピングコミュニティが行った作業から新しいプロジェクトが成長しています。 これらの最初のものであるFacebookのFlow言語は、今年初めに発表されました。 これは、アプリケーションの基本的な構成要素としてのモジュールに基づいており、豊富な型付きインターフェイスと.d.tsとの互換性をそれらに追加します。 AtScriptと呼ばれる2番目のプロジェクトは、GoogleのAngularチームによって最近発表されました。 TypeScriptに類似した型注釈に基づいており、実行時にメタデータ注釈と検証を追加します。



TypeScriptチームは両方のコマンド(FlowおよびAtScript)と連携して、JavaScriptタイピングコミュニティによって既に作成されたリソースをこれらのツールで使用できるようにします。 すべてのプロジェクトはお互いから多くのことを学ぶことができます。私たちは、JavaScriptコミュニティに最適なツールを作成するために協力するために将来を見据えています。 長期的には、これらのツールの最高の機能がJavaScriptの標準であるECMAScriptにも含まれるように努めています。



ロードマップ



TypeScript 1.3



次のリリースはTypeScript 1.3になり、コードエディタでの開発プロセスをより迅速かつスムーズにする新しい書き換え言語サービスが含まれます。 また、ツールが完全に依存できるようにコンパイラAPIの標準化を開始する最初のリリースにもなります。 このリリースの一部として、Visual Studioの統合の新しいバージョンのプレビューも表示します。これは、その後統合の一部になります。



言語の観点から、2つの新しい機能を追加します: protectedおよびtype tuples(tuple) 。 セキュアアクセス修飾子は、かなり長い間最も頻繁に要求される機能の1つであり、TypeScriptに追加のオブジェクト指向テンプレートを追加できることを嬉しく思います。 型タプルを使用して、今後のECMAScript 6の機能に基づくプラクティスと同期するために、型システムの拡張を開始します。具体的には、これにより、タプルと見なされる配列破壊の型セーフな使用が可能になります。



「TypeScript 1.2はどこにありますか?」と尋ねているのかもしれません。以前のバージョン(バージョン1.1)を安定させるためのリリースとして使用する予定です。 開発者がそれに切り替えるのに十分安定していることが判明しました。 これにより、言語サービスの作業を進め、当初の計画よりも早く新しい機能を追加することができました。



TypeScript 1.4



リリース1.4では、言語のさらなる開発に集中したいと考えています。 最初の新機能は、GitHubのマスター検証ですでに利用可能です。 これらには、 タイプの関連付けとタイプを指定するifブロックでのtypeofの使用が含まれます。 両方の機能を次の例に示します。



 function createCustomer(name: { firstName: string; lastName: string } | string) { if (typeof name === "string") { // Because of the typeof check in the if, we know name has type string return { fullName: name }; } else { // Since it's not a string, we know name has // type { firstName: string; lastName: string } return { fullName: name.firstName + " " + name.lastName }; } } // Both customers have type { fullName: string } var customer = createCustomer("John Smith"); var customer2 = createCustomer({ firstName: "Samuel", lastName: "Jones" });
      
      





両方の機能により、JavaScriptコードを操作する際により自然なパターンを使用できます。 複数のバリアントを持つ型のより正確な説明を可能にする型の関連付けは、混合配列を操作するときに発生した以前のTypeScriptバージョンのいくつかの問題点を軽減するのにも役立ちます。



TypeScript 1.5からTypeScript 2.0へ



リリース2.0で将来を見据えて、JavaScript開発に最適なツールを提供するという主な目標に加えて、2つの目標に焦点を当てています。 1つは、ES6とドッキングすることです。 ES6との同期により、TypeScriptは次のバージョンのJavaScriptのスーパーセットになり、TypeScriptが既にサポートしている機能(クラスやラムダなど)に加えて、構造化、文字列テンプレート、プロミス、イテレーターなどを含む新しいテンプレートやコード構築作業を行う機会が開かれます機能。 次に、FlowおよびAngularチームと協力して、TypeScriptが、今後のAngular 2.0リリースのような宣言型フレームワークを含む、幅広いライブラリを扱うのに最適な言語であることを確認します。



未来に目を向ける



多くの作業が先にありますが、私たちはすでに計画に従って順調に進んでいます。 GitHubのTypeScriptリポジトリから最新のソースコードを取得することにより、上記の機能のいくつかを試すことができます 。 プルリクエストの使用とともに仕様をレイアウトするために、GitHubスタイルを採用しました。 これにより、開発中の新機能を追跡できます。また、フィードバックをお待ちしております。



便利なリンク






All Articles