インターフェイスに準拠するものはすべて、定義によって実装します。これは、TypeScriptに構造型システムがあるためです。
次に、インターフェイスの実装を初期化するいくつかの例を示します。
const user = {
id: "1",
createdAt: new Date(),
updatedAt: new Date(),
name: "Kurt",
photos: [{
id: "1",
name: "avatar.png",
createdAt: new Date(),
updatedAt: new Date(),
data: "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
}]
};
上記のオブジェクトリテラルは、MyUser
インターフェイスを実装しています。
変数宣言にインターフェイスタイプを指定することもできます。これは、オブジェクトリテラルを記述するときにインターフェイスメンバーにインテリセンスを提供するためです。
const user: MyUser = {
id: "1",
createdAt: new Date(),
updatedAt: new Date(),
name: "Kurt",
photos: [{
id: "1",
name: "avatar.png",
createdAt: new Date(),
updatedAt: new Date(),
data: "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
}]
};
インターフェイスには初期化子がありません。代わりにクラスを使用してください。 – pixelbits