TypeScript では、次の 2 つのステートメントには大きな違いがあります。
clientLoader.水和物 = const として true;
clientLoader.水和物 = true;
参考までに、これらの例は React ルーター v7 から選択しました。
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 以外の値を割り当てることはできません。
このタイプの代入は、特定のプロパティに対して不変性を強制したい場合に便利です。
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 |
不変性の強制: as const は値をロックダウンして、他の値に変更できないようにします。これは、特定の値がプログラム全体で常に同じであることを保証したい場合に特に便利です。
判別共用体のリテラル型: 判別共用体を使用する場合、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'
特定のリテラル値をプロパティに割り当て、その値が固定されたままになるようにする場合は、const として使用します。
プロパティが異なるブール値を受け入れられるようにする場合、または正確な値を制限する必要がない場合は、通常の割り当て (true、false など) を使用します。
これにより、 as const は、TypeScript コードでより正確に入力し、より厳密な値の制約を適用するための便利なツールになります。
以上がTypeScript でのリテラル型のマスター: const と true としての trueの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。