TypeScriptは静的型付け言語として、型を駆使してコードの安全性を向上させることができます。その中でも、XOR(排他的論理和)型は特定の型が一度には存在できないことを表現するのに役立ちます。この記事では、TypeScriptでXOR型をどのように使用するかに焦点を当てます。

XOR型とは

XOR型は、複数の型のうち、一度にはどれか一つしか存在しないことを示す型です。これは、与えられた変数やパラメータが複数の型に一致することを防ぐのに役立ちます。以下は、XOR型の基本的な例です。

type XOR<T, U> = T | U extends object
  ? (key: keyof T & string) extends never
    ? T | U
    : never
  : never;

このXOR型の定義では、T型またはU型がオブジェクトである場合、T型とU型のプロパティが同時に存在することを防ぎます。

TypeScriptでのXOR型の利用例

例として、Person型とCompany型があり、これらの型を組み合わせてContact型を作成するケースを考えてみましょう。

type Person = {
  name: string;
  age: number;
};

type Company = {
  companyName: string;
  industry: string;
};

type Contact = XOR<Person, Company>;

const personContact: Contact = {
  name: "John Doe",
  age: 30,
};

const companyContact: Contact = {
  companyName: "ABC Inc.",
  industry: "Technology",
};

この例では、Person型とCompany型のどちらか一方しか持てないContact型を作成しています。これにより、Contact型の変数がPerson型とCompany型の両方のプロパティを持つことを防ぎます。

XOR型は、複雑な型の組み合わせにおいても柔軟に利用でき、型安全性を向上させるのに役立ちます。TypeScriptの型システムの強力さを活かして、コードの信頼性を高めるためにXOR型を上手に活用しましょう。

投稿者 admin

コメントを残す

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