TypeScriptでは、静的な型システムが提供されており、変数や関数の型を事前に定義することができます。これにより、コードの品質向上やバグの早期発見が可能になります。型判定を活用して、より安全で効率的なコードを書く方法を学びましょう。

単純な型判定

まず初めに、変数の型を判定し、条件に基づいて処理を行う方法を見てみましょう。

let value: number | string = 42;

if (typeof value === 'number') {
    // 数値の場合の処理
    console.log('数値です');
} else if (typeof value === 'string') {
    // 文字列の場合の処理
    console.log('文字列です');
} else {
    // その他の場合の処理
    console.log('その他の型です');
}

カスタム型を使用した型判定

TypeScriptでは、enumやunion typeを使用して、独自の型を定義することができます。これを利用して、より具体的な型判定を行うことができます。

type Shape = 'circle' | 'square' | 'triangle';

function getArea(shape: Shape, size: number): number {
    switch (shape) {
        case 'circle':
            return Math.PI * Math.pow(size / 2, 2);
        case 'square':
            return Math.pow(size, 2);
        case 'triangle':
            return (Math.sqrt(3) / 4) * Math.pow(size, 2);
        default:
            throw new Error('未知の形状です');
    }
}

ガード節を使用した型の絞り込み

関数内での条件判定によって、型を絞り込むことができます。これをガード節と呼びます。

type Fish = { swim: () => void };
type Bird = { fly: () => void };

function move(animal: Fish | Bird) {
    if ('swim' in animal) {
        // Fish型の場合
        animal.swim();
    } else {
        // Bird型の場合
        animal.fly();
    }
}

TypeScriptの型判定と条件分岐を駆使して、堅牢で可読性の高いコードを書くことができます。適切な型の使用は、開発プロセスを効果的にサポートし、安全性を向上させます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です