TypeScriptにおける`is`演算子は、特定の型であるかどうかを判定し、その型の制約を持った変数を作成するために使用される、カスタムな型ガードを実現するための演算子です。型ガードは、プログラム内で特定の型を確認し、それに基づいてコードを安全に制御するための手段です。
カスタムな型ガードを定義する際に`is`演算子を使用する例を以下に示します。
```typescript
// カスタム型ガードの定義
function isString(value: unknown): value is string {
return typeof value === "string";
}
function isNumber(value: unknown): value is number {
return typeof value === "number";
}
// 使用例
function printValueType(value: unknown) {
if (isString(value)) {
console.log("Value is a string:", value.toUpperCase());
} else if (isNumber(value)) {
console.log("Value is a number:", value.toFixed(2));
} else {
console.log("Value has an unknown type");
}
}
printValueType("hello"); // Value is a string: HELLO
printValueType(42); // Value is a number: 42.00
printValueType(true); // Value has an unknown type
```
この例では、`isString`と`isNumber`というカスタムな型ガード関数を定義しています。これらの関数は、それぞれ特定の型であるかどうかを判定し、`value is string`および`value is number`という形式の型ガードの条件を満たすかどうかを返します。その後、`printValueType`関数内でこれらの型ガードを使用して、`unknown`型の変数を安全に特定の型として扱っています。
`is`演算子を使用することで、型の制約を持った変数を作成し、型ガードを使って型の判定と安全な型アサーションを行うことができます。
コメント
コメントを投稿