型注釈・型推論

TypeScriptでは、変数や関数の宣言に型注釈(Type Annotation)を明示的に記述することで、型安全性を高めることができます。一方で、型推論(Type Inference)によって明示しなくても型が自動的に決まる場面も多く、柔軟に使い分けることが重要です。**


📝 型注釈(Type Annotation)

変数や引数、戻り値などに明示的に型を指定する方法です。

✅ 基本構文

const 変数名: 型 = 値;
function 関数名(引数: 型): 戻り値の型 {}

🔍 例

const name: string = "Alice";
const age: number = 30;
const isMember: boolean = true;

function greet(user: string): string {
  return `Hello, ${user}`;
}
  • 開発者が意図する型を正確に記述できる
  • IDE の補完やバリデーション精度が向上する

⚡ 型推論(Type Inference)

初期値からTypeScriptが自動で型を判断します。

🔍 例

const city = "Tokyo";       // string と推論される
const count = 42;           // number と推論される
const isOpen = false;       // boolean と推論される
  • 明確な初期値がある場合、型注釈は省略可能
  • シンプルなコードが書ける

💡 推論されない場合や不明確な型は注釈必須

const data: any = null;  // 型を指定しないと any になる
const items: string[] = []; // 空配列は明示が必要
function format(value: number | string): string {
  return value.toString();
}

🧪 型注釈と推論の混在

const price = 1000;                    // 推論された number 型
const label: string = "商品価格";       // 明示された string 型

function show(label: string, price: number): string {
  return `${label}: ¥${price}`;
}

型注釈方針

ケース 型注釈が必要? 理由
値が代入されており、型が明確 ❌ 不要(推論に任せる) 冗長になるため
初期値が空([], {}など) ✅ 必要 推論できないため any になる
ジェネリック型(例:Map<string, number> ✅ 必要 推論しにくく、明示すべき
関数の引数と戻り値 ✅ 原則必要 明確なインターフェース設計のため
複雑な構造・ユニオン型など ✅ 明示推奨 可読性・保守性の向上
コメントを残す 0

Your email address will not be published. Required fields are marked *