0Pricing
TypeScript Academy · レッスン

enum、const enum、union literalの代替案

従来のenum、const enum、union literalによる代替案を比較し、開発体験、サイズ、安全性のトレードオフを学びます

「enum、const enum、union literalの代替案」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全3レッスンが含まれています。

導入

目標:enum、const enum、またはunion-literal型をいつ使うかを学びます。実行時の出力、DX、ツリーシェイキングを比較します。

数値enum

数値enumは実行時オブジェクトを生成し、逆マッピングを利用できます。単純である一方、バンドルサイズが多少増加します。

enum Direction {
  Left = 0,
  Right = 1
}

const d: Direction = Direction.Left;
console.log(d); // 0

文字列enum

文字列enumはログやAPIで読みやすくなります。また、実行時オブジェクトも生成します。

enum Status {
  Ok = "ok",
  Error = "error"
}

const s: Status = Status.Ok;
console.log(s); // "ok"

const enum

const enumはコンパイル時に値をインライン化するため、実行時コストがゼロになります。ただし、ビルドツールを一貫して設定する必要があります。

const enum Axis {
  X = 0,
  Y = 1
}

const a: Axis = Axis.X;
console.log(a); // 0 (inlined)

union-literalによる代替

union-literalは実行時の出力がなく、switchでの絞り込みに適しており、ツリーシェイキングの効果も高くなります。多くの場合、最初に検討する選択肢として適しています。

type Dir = "left" | "right";

function move(d: Dir) {
  switch (d) {
    case "left":
      console.log("←");
      break;
    case "right":
      console.log("→");
      break;
  }
}

move("left");

選び方

ガイドライン:

  • ほとんどの選択肢の集合には、union-literalを優先します(実行時コストがありません)。
  • 実行時オブジェクトや逆マッピングが必要な場合は、enumを使用します。
  • ビルド環境が対応している場合は、値をインライン化する定数にconst enumを使用します。

union-literalとenumの確認

確認問題:enumの代替となるunion-literal型について、正しい説明はどれですか?

まとめ

まとめ:enumは実行時オブジェクトを生成し、const enumは値をインライン化してコストをゼロにし、union-literalは実行時の出力なしで安全性を提供します。ビルド環境とAPIの要件に応じて選択してください。

よくある質問

「enum、const enum、union literalの代替案」レッスンは無料ですか?

はい。「enum、const enum、union literalの代替案」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全3レッスンが含まれています。

「enum、const enum、union literalの代替案」で何を学びますか?

従来のenum、const enum、union literalによる代替案を比較し、開発体験、サイズ、安全性のトレードオフを学びます ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「enum、const enum、union literalの代替案」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 配列とReadonlyArray
  2. タプルとラベル付きタプル
  3. enum、const enum、union literalの代替案
← TypeScript Academyに戻る