Day 2・オブジェクト・配列・型に名前をつける
interfaceとtype(データの形に名前をつける)
毎回長い型を書くのをやめ、interfaceやtypeでデータの形に名前をつけて再利用する。
同じ形を何度も書くのは大変
前のレッスンで { name: string; age: number; email: string } という型を書きました。でも、この形のユーザーを何箇所でも使うたびに同じ型を書き直すのは面倒で、間違いのもとです。そこで「この形に名前をつけて再利用する」仕組みがとです。
interface User {
name: string;
age: number;
email: string;
}
const user: User = {
name: "田中",
age: 30,
email: "tanaka@example.com",
};interface User { ... } は「User という形はこういうプロパティを持つ」という約束です。一度定義すれば、User と書くだけでその形を指せます。
AIにはこう聞く
「このJSONに対応する interface を作って」とAIに頼むと、形に合った User のような型を一発で作ってくれます。あなたはプロパティ名と型が実際のデータと合っているかを確認します。型に名前があると、AIとの会話でも『User型を渡して』のように短く正確に指示できます。
type でも同じことができる
type というキーワードでも、形に名前をつけられます。オブジェクトの形に名前をつける用途では、interface とほぼ同じように使えます。
type User = {
name: string;
age: number;
email: string;
};
const user: User = { name: "田中", age: 30, email: "tanaka@example.com" };名前をつけないと重複する
function greet(u: { name: string; age: number }) {}
function save(u: { name: string; age: number }) {}
// 同じ形を何度も手書き。片方だけ直すと不整合名前をつけると一箇所で管理
interface User { name: string; age: number }
function greet(u: User) {}
function save(u: User) {}
// User を直せば全部に反映されるinterfaceとtypeどちらを使う
オブジェクトの形に名前をつけるだけなら、どちらを使っても構いません。この教材ではデータの形は interface を中心に使います。type は後で出てくる複数の型を組み合わせる場面(union など)で力を発揮します。まずは「形に名前をつける道具が2つある」と覚えておけば十分です。
- interface や type で、データの形に名前をつけられる
- 一度定義すれば、その名前を型として何度でも使える
- 形を一箇所で管理できるので、変更に強く間違いが減る
定義と使う場所を混同しない
interface User { ... } は「型の定義」で、値そのものではありません。実際のデータ(値)は const user: User = { ... } のように別に用意します。型は設計図、値は実際の中身、という関係です。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
interface や type を使って型に名前をつける主な利点はどれですか。
次のうち、type を使った正しい定義はどれですか。
APIから受け取るユーザーデータに interface で名前をつけておくと、開発中にどんな場面で役立ちますか。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。