ホームページ > ウェブフロントエンド > jsチュートリアル > TypeScript でのリテラル型のマスター: const と true としての true

TypeScript でのリテラル型のマスター: const と true としての true

Linda Hamilton
リリース: 2024-12-20 19:21:11
オリジナル
403 人が閲覧しました

Mastering Literal Types in TypeScript: true as const vs true

TypeScript では、次の 2 つのステートメントには大きな違いがあります。

  1. clientLoader.水和物 = const として true;

  2. clientLoader.水和物 = true;

参考までに、これらの例は React ルーター v7 から選択しました。

詳細な説明と例で違いを詳しく見てみましょう

  1. clientLoader.水和物 = const として true;

TypeScript の as const アサーションは、値を一般的な型ではなくリテラル型として扱うように TypeScript コンパイラーに指示する方法です。
この場合、const として true は、ハイドレートのタイプがブール値ではなく、文字通りの true になることを意味します。基本的に、特にハイドレートの値を true にロックします。

例:

interface ClientLoader {
  hydrate: true;  // The type of hydrate is set to the literal value `true`
}

const clientLoader: ClientLoader = {
  hydrate: true as const,
};

clientLoader.hydrate = true; // This is valid

// clientLoader.hydrate = false; // Error: Type 'false' is not assignable to type 'true'
ログイン後にコピー
ログイン後にコピー
  • 上記の例では、clientLoader.quantity は特に true として型指定されています。 as const アサーションのため、ハイドレートに true 以外の値を割り当てることはできません。

  • このタイプの代入は、特定のプロパティに対して不変性を強制したい場合に便利です。

  1. clientLoader.水和物 = true;

as const アサーションがないと、TypeScript はハイドレートの型をブール値として推論します。これは、ハイドレートに任意のブール値 (true または false) を割り当てることができることを意味します。

例:

interface ClientLoader {
  hydrate: boolean;  // The type of hydrate is set to `boolean`
}

const clientLoader: ClientLoader = {
  hydrate: true,
};

clientLoader.hydrate = true;  // This is valid
clientLoader.hydrate = false; // This is also valid
ログイン後にコピー
  • この場合、ハイドレートはブール型として入力されるため、それに true または false を割り当てることができます。

  • true と false の両方を柔軟に切り替えることができます。

Feature clientLoader.hydrate = true as const; clientLoader.hydrate = true;
Type of hydrate true (literal type) boolean (general type)
Flexibility Can only be true Can be true or false
Use Case When you want the property to be strictly true and not allow changes When the property can hold any boolean value
Type Inference The type of hydrate is narrowed to true The type of hydrate is inferred as boolean

const として使用する理由

  1. 不変性の強制: as const は値をロックダウンして、他の値に変更できないようにします。これは、特定の値がプログラム全体で常に同じであることを保証したい場合に特に便利です。

  2. 判別共用体のリテラル型: 判別共用体を使用する場合、as const を使用すると、以下に示すように、リテラル型に基づいて特定のケースを作成できます。

interface ClientLoader {
  hydrate: true;  // The type of hydrate is set to the literal value `true`
}

const clientLoader: ClientLoader = {
  hydrate: true as const,
};

clientLoader.hydrate = true; // This is valid

// clientLoader.hydrate = false; // Error: Type 'false' is not assignable to type 'true'
ログイン後にコピー
ログイン後にコピー

結論

  1. 特定のリテラル値をプロパティに割り当て、その値が固定されたままになるようにする場合は、const として使用します。

  2. プロパティが異なるブール値を受け入れられるようにする場合、または正確な値を制限する必要がない場合は、通常の割り当て (true、false など) を使用します。

これにより、 as const は、TypeScript コードでより正確に入力し、より厳密な値の制約を適用するための便利なツールになります。

以上がTypeScript でのリテラル型のマスター: const と true としての trueの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート