インターフェイスの使い方
TypeScriptのような静的な型チェッカーは
コードを実行する前に、
バグを見つけるためのツールとして使います。
インターフェイス宣言の目的は、
オブジェクトタイプに名前を付けることです。
オブジェクトタイプは、
プロパティを持つ、データタイプのことです。
他にオブジェクトタイプに名前を付ける方法は、
タイプエイリアスもあります。
データタイプとしてはユニオンタイプがあります。
interface:インタフェース
type:タイプエイリアス
union:ユニオンタイプ
インターフェイスとタイプエイリアスは似ていますが、
違いはインタフェースが拡張可能なことです。
インターフェイスはオブジェクトタイプにのみ使用します。
型を持つオブジェクトの型チェッカーに、
インターフェイスが使われます。
下記の例では、
Courseインターフェイスを使うとき、
プロパティの
id、description、iconUrl は、
必ず使わなければエラーになります。
interface Course {
id:number;
description:string;
iconUrl: string;
}
プロパティを必須にしない為には、
?を使います。
iconUrl?: stringのように
書くと必ず使う必要はなくなります。
interface Course {
id:number;
description:string;
iconUrl?: string;
}
プロパティを読み込み専用にするには、
プロパティの前にreadonlyを付けます。
readonly id:number;の様に書きます。
interface Course {
readonly id:number;
description:string;
iconUrl?: string;
}
インターフェイスは、
関数、クラスでも大丈夫です。
下記は関数の例です。
interface Hello{
(source: string): boolean;
}
下記はクラスの例です。
interface SleepTime {
current: Date;
}
インターフェイスは、
extendsを使い、
拡張することも可能です。
interface Course {
id:number;
description:string;
iconUrl: string;
}
interface Co extends Course{
longDescription: string;
category:string;
}
インターフェイスを、
クラスに実装することも出来ます。
実装するには、
implementsを使います。
interface Course {
id:number;
description?:string;
iconUrl?: string;
}
class CourseCard implements Course {
...
}
以上です。