スキップしてメイン コンテンツに移動

Typescriptのis演算子

 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`演算子を使用することで、型の制約を持った変数を作成し、型ガードを使って型の判定と安全な型アサーションを行うことができます。

コメント

このブログの人気の投稿

XMPPとは

XMPPとは、インスタントメッセージソフトなどに使われるXMLベースのオープンソース・プロトコルである。2004年に、IETF(Internet Engineering Task Force)でIMPP(Instant Messaging and Presence Protocol)の標準案に選ばれた。 Jabber社が開発したインスタントメッセージソフト「Jabber」のプロトコルを、セキュリティ機能などを追加して改良したものである。具体的な機能としては、インスタントメッセージソフトで必要不可欠となるメッセージの送受信や、プレゼンス状態の通知などを受け持っている。 XMPPは柔軟性や拡張性が高いのが特徴であり、JabberやGoogle Talkなどのインスタントメッセージソフトで採用されている。 XMPPを使っているサービスの例はCERN、アメリカの軍事衛星、BBC News、MLB、DuckDuckGoなどがある。また、SlackやHipchatなどのXMPP連携を行うコミュニケーションサービスも数多くある。 時間があれば、ぜひ使ってみたいと思います。