公開日

【TypeScript】TypeScriptの高度な型機能の解説

本記事では、TypeScriptの高度な型機能について解説しました。特に、ジェネリクス、ユニオン型、インターセクション型の利用方法に焦点を当て、それぞれの概念と利用例を紹介しました。これらの高度な型機能を活用することで、型の再利用性を高め、より柔軟かつ安全なコードの記述が可能になります。TypeScriptの型システムを深く理解し、効果的に活用することで、開発の生産性を向上させることができるでしょう。

著者
  • avatar
    名前
    Lan oo
    Twitter
    @Lan_o_sir
  • Freelance IT Engineer
目次

TypeScriptは、JavaScriptに静的型付けの機能を加えた言語です。型システムを有効に活用することで、開発の生産性を向上させることができます。 この記事では、TypeScriptの高度な型機能のいくつか、特にジェネリクス、ユニオン型、インターセクション型に焦点を当てて解説します。

ジェネリクス

ジェネリクスは、型の再利用性を高める強力なツールです。関数、インターフェース、クラスなどで使用することができます。ジェネリクスを使用することで、異なる型に対応する単一の関数やクラスを定義することが可能になります。

function identity<T>(arg: T): T {
    return arg;
}

この関数は、任意の型Tの引数argを受け取り、同じ型Tのargを返します。これにより、任意の型に対して同じ操作を行う関数を一つにまとめることができます。

ユニオン型

ユニオン型は、複数の型のうち一つが成立することを示します。これにより、より柔軟な型付けが可能になります。|演算子を使ってユニオン型を定義します。

type StringOrNumber = string | number;

const string: StringOrNumber = "test";
const number: StringOrNumber = 100;

この関数は、string型またはnumber型のmessageを引数に取ることができます。

インターセクション型

インターセクション型は、複数の型を組み合わせて、新しい型を作り出します。これは&演算子を用いて定義されます。

interface BusinessPartner {
    name: string;
    credit: number;
}

interface Contact {
email: string;
phone: string;
}

type Customer = BusinessPartner & Contact;

function greetCustomer(customer: Customer): void {
console.log(`Hello, ${customer.name}!`);
}

この例では、BusinessPartnerとContactの両方のプロパティを持つCustomer型を定義しています。

TypeScriptの型システムは非常に強力で、これらの高度な型機能を駆使することで、より安全で保守しやすいコードを書くことができます。ジェネリクス、ユニオン型、インターセクション型を理解し、適切に活用することで、TypeScriptの可能性を最大限に引き出しましょう。