本文へスキップ
BecomeCoder

TypeScriptコース · 第3章 オブジェクトと型 · レッスン9

interface ― オブジェクトの型に名前をつける

ブラウザで完結

導入

同じ形のオブジェクトを何度も使うなら、その型に名前を付けておくと便利です。interface(インターフェース)を使うと、オブジェクトの形を再利用できます。

説明

interface で型に名前を付けます。以後はその名前を型として使えます。

interface User {
  name: string;
  age: number;
}

let taro: User = { name: "太郎", age: 25 };
let hanako: User = { name: "花子", age: 30 };
console.log(taro.name, hanako.name);

関数の引数の型としても使えます。長い { name: string; age: number } を毎回書かずに済みます。

interface User {
  name: string;
  age: number;
}

function greet(user: User): void {
  console.log("こんにちは、" + user.name + "さん");
}
greet({ name: "太郎", age: 25 });

interface はコンパイル時に消えるので、実行される JavaScript には残りません(型だけの存在です)。

やってみよう

User に3人目 let jiro: User = { name: "次郎", age: 20 }; を足して、console.log(jiro.age) で表示してみましょう。

演習

Product という interface を作ってください。name(string)と stock(number)を持ちます。Product 型の変数 itemname: "ペン"stock: 3 を入れ、console.log(item.stock) で在庫数を表示しましょう。

ヒント1を見る

interface Product { name: string; stock: number; } を書き、let item: Product = { name: "ペン", stock: 3 }; とします。

実際に動かしてみよう

下のエディタにTypeScriptを書いて「実行」を押すと、その場でJavaScriptに変換してブラウザ内で実行し、出力が表示されます。本文の例をそのまま試したり、型注釈を書き換えたりしてみましょう(console.log の結果が下に出ます。初回だけコンパイラの読み込みに少し時間がかかります)。

TypeScript — ブラウザ内で実行

TypeScriptコンパイラ(同梱)でTS→JSに変換してから実行する学習用環境を読み込みます(初回のみコンパイラの読み込みに少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。