ホームページ >ウェブフロントエンド >jsチュートリアル >インターフェイスではなくタイプを選択する理由

インターフェイスではなくタイプを選択する理由

王林
王林オリジナル
2024-08-05 19:03:02781ブラウズ

Why to Choose Types Instead of Interfaces

TypeScript では、オブジェクトの型を定義するために型とインターフェイスの両方が使用されます。ただし、用途や機能は異なります。どちらも、開発者がコードを記述するときに変数とオブジェクトの型を制限するのに役立ち、それによってエラーが減り、コードの読みやすさが向上します。

では、なぜ型を使うのでしょうか?これについて話し合いましょう。

種類

TypeScript では、型を使用してデータの形状を定義できます。柔軟性があり、結合や交差などの作成に使用できます。

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

type Admin = User & {
  isAdmin: boolean;
};

インターフェース

インターフェイスは、オブジェクトの形状を定義するもう 1 つの方法です。これは型よりも厳密であり、主にオブジェクトの形状とクラス コントラクトを定義するために使用されます。

interface User {
  name: string;
  age: number;
}

interface Admin extends User {
  isAdmin: boolean;
}

私がタイプを好む理由

  • ユニオン

共用体タイプでは、複数のタイプのうちの 1 つとなるタイプを定義できます。これは、関数のパラメーターと戻り値の型に便利です。ここで、ID は文字列または数値のいずれかであり、共用体型の威力を示しています。

type ID = string | number;

function getUserId(id: ID): string {
  return `User ID: ${id}`;
}
  • 文字列リテラル

リテラル型を使用すると、変数が取り得る正確な値を指定できます。これは、定数や構成オプションを定義する場合に非常に役立ちます。

type Direction = 'north' | 'south' | 'east' | 'west';

function move(direction: Direction) {
  console.log(`Moving ${direction}`);
}

move('north');
  • 条件型

タイプを使用すると、条件付きタイプの作成が可能になり、条件に基づいてタイプを選択できるようになります

type Check<T> = T extends string ? string : number;

let result1: Check<string>; // result1 is of type string
let result2: Check<number>; // result2 is of type number
  • 交差点

交差タイプを使用すると、複数のタイプを 1 つに結合できます。これは、複雑なタイプの合成を作成する場合に特に便利です。

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

type Employee = {
  employeeId: number;
};

type EmployeeDetails = Person & Employee;

const employee: EmployeeDetails = {
  name: 'Dev',
  age: 30,
  employeeId: 12345,
};

タイプとインターフェイスのどちらを選択するかは、最終的には特定の使用例と個人的な好みによって決まります。ただし、それぞれの長所を理解すると、より多くの情報に基づいた意思決定を行い、より優れた TypeScript コードを作成するのに役立ちます。

以上がインターフェイスではなくタイプを選択する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。