📦 インターフェース(interface)
// オブジェクトの形を定義
interface User {
id: number;
name: string;
email?: string; // ? = オプショナル(なくてもOK)
}
const user: User = { id: 1, name: "たろう" };
// 関数のインターフェース
interface Greeter {
(name: string): string;
}
const greet: Greeter = (name) => `Hello, ${name}!`;
🔧 ジェネリクス(Generics)
// 型を引数として受け取る汎用関数
function first<T>(arr: T[]): T {
return arr[0];
}
console.log(first<number>([1, 2, 3])); // 1
console.log(first<string>(["a", "b"])); // "a"
// 型推論により型引数を省略することも可能
console.log(first([true, false])); // true