5章クラスとインターフェース

あなたがオブジェクト指向言語の経験者であれば、クラスは毎日の生活に欠かせないものでしょう。クラスは、コードを体系化して、それについて考えるための方法であり、カプセル化の主要な単位となります。TypeScriptのクラスはC#から多くのものを借用しており、アクセス修飾子、プロパティ初期化子、ポリモーフィズム、デコレーター、インターフェースといったものをサポートしています。しかしそれだけでなく、TypeScriptのクラスは通常のJavaScriptのクラスにコンパイルされるため、ミックスインのようなJavaScriptの使い方も、型安全な方法で表現できるのです。

プロパティ初期化子や継承のようなTypeScriptクラスの機能の一部は、JavaScriptのクラスでもサポートされているので†1、ランタイムコードとして生成されます。アクセス修飾子、インターフェース、ジェネリックのようなその他の機能は、コンパイル時のみに存在するTypeScriptのみの機能であり、アプリケーションをJavaScriptにコンパイルするときには、何のコードも生成されません。

[†1] あるいは、まもなくサポートされる予定です。

この章では、TypeScriptでクラスを扱う方法についてのさまざまな例を通じて、TypeScriptのオブジェクト指向の機能についてだけでなく、それらをなぜ、どのように使用するかについて深く理解できるよう解説します。コードエディターに実際に入力しながら、話についてきてください。

5.1 クラスと継承

ここでは、チェスのエンジンを作成します。このエンジンはチェスのゲームをモデル化し、2人のプレーヤーが交互に駒を動かすためのAPIを提供します。

型の概略を記述することから始めます。 ...

Get プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.