インターフェース入門
CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 39/73。
インターフェースはオブジェクトの型エイリアスと同じ基本的な目的を果たしますが、異なる構文を使用し、独自の機能もいくつか備えています。
インターフェースは、interfaceキーワードの後にインターフェース名と、中かっこで囲まれたオブジェクト構造を記述して宣言します。
interface Animal {
name: string;
sound: string;
}
let dog: Animal = {
name: "Buddy",
sound: "Woof"
};構文はすっきりしていて分かりやすく、interface 本体の中にプロパティとその型を列挙するだけです。いったん定義すれば、型エイリアスの場合と同じように、コード内のどこでも interface 名を型注釈として使用できます。
チャレンジ
簡単次のプロパティを持つ Pet という名前の interface を作成してください。
- 型が
stringのname - 型が
stringのspecies - 型が
numberのage - 型が
booleanのisVaccinated
次のプロパティを持つ Vehicle という名前の interface を作成してください。
- 型が
stringのmake - 型が
stringのmodel - 型が
numberのyear
作成した interfaces を使用して、次の variables を作成してください。
- 名前が
"Buddy"、species が"Golden Retriever"、age が3、isVaccinated がtrueで、型がPetのmyDogという variable を作成してください - 名前が
"Whiskers"、species が"Persian"、age が2、isVaccinated がfalseで、型がPetのmyCatという variable を作成してください - make が
"Toyota"、model が"Camry"、year が2022で、型がVehicleのmyCarという variable を作成してください
型が Pet のパラメーターを受け取り、"[name] is a [age]-year-old [species]" 形式の string を返す、describePet という名前の function を作成してください。
型が Vehicle のパラメーターを受け取り、"[year] [make] [model]" 形式の string を返す、getVehicleInfo という名前の function を作成してください。
次の outputs をそれぞれ別の行に出力してください。
myDogを使ってdescribePetを呼び出し、結果を出力するmyCatを使ってdescribePetを呼び出し、結果を出力するmyCarを使ってgetVehicleInfoを呼び出し、結果を出力するmyDogのワクチン接種状況(isVaccinatedプロパティ)を出力する
自分で試してみよう
// TODO: ここにコードを書いてください
// Petインターフェースを作成する
// Vehicleインターフェースを作成する
// インターフェースを使用して変数を作成する
// describePet関数を作成する
// getVehicleInfo関数を作成する
// 必要な出力を表示するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Introduction To TypeScriptのすべてのレッスン
2基本の型
基本の型: str, num, boolean'any' 型: 脱出ハッチ'unknown' 型'null' と 'undef' の扱い型推論の実践明示的な型アノテーションまとめ:基本の型の演習5型:エイリアス、ユニオン型、インターセクション型
プリミティブ型の型エイリアスユニオン型 ('|')ユニオン型の扱い方リテラル型インターセクション型 ('&')型エイリアスの組み合わせまとめ:高度な型の組み合わせ自分で練習してみよう: JavaScriptオンラインコンパイラ