ホームページ > ウェブフロントエンド > jsチュートリアル > ジェネリッククラスの開発方法

ジェネリッククラスの開発方法

WBOY
リリース: 2023-08-27 23:21:03
転載
695 人が閲覧しました

ジェネリッククラスの開発方法

実際のジェネリック クラスを開発する前に、まずジェネリック クラスについて理解しましょう。ジェネリックスと呼ばれる TypeScript クラスは、複数の種類のデータを処理できます。これはさまざまなパラメータであり、山括弧 () を使用して示されています。これは、この目的を達成するためにクラスが使用するデータ型を表します。クラスのプロパティと関数で型パラメーターを使用すると、クラスを柔軟にして他のデータ型で再利用できるようになります。

いくつか説明会を行います。この例では、型パラメータが「T」として表され、単純なジェネリック クラス「MyGenericClass」の属性「value」が表されるとします。 「T」と「value」の両方を作成できます。このクラスが代替型 (「number」や「string」など) を使用してインスタンス化される場合、「value」プロパティは適切な型になります。

同じクラスを複数のデータ型で使用できるため、コードの柔軟性と再利用性がさらに高まります。制約を使用して、型パラメーターとして使用される種類を制限することもできます。

###文法###

TypeScript でジェネリック クラスを作成するための構文は次のとおりです -

リーリー

ここで、「ClassName」はクラスの名前、「TypeParameter」はクラスが使用するデータ型のプレースホルダーです。

例 1

この例では、TypeScript でジェネリック クラスを使用して、複数のデータ型を処理できるクラスを作成する方法を示します。クラスは、クラスのプロパティとメソッドで使用される型パラメーター T で定義され、クラスを柔軟に、さまざまな型のデータで再利用できるようにします。 「Queue」クラスには、T 型の配列である「data」と呼ばれるプライベート プロパティがあります。

このクラスには 3 つのメソッドもあります: "enqueue" はキューの最後に項目を追加します; "dequeue" はキューの先頭から項目を削除します; "peek" はキュー内の項目を返します。削除せずにキューの先頭に移動します。 Queue クラスのインスタンスを 2 つ作成します。1 つは数値用、もう 1 つは文字列用です。このクラスはさまざまなデータ型を処理できるため、コードがより柔軟で再利用可能になります。

リーリー

コンパイルすると、次の JavaScript コードが生成されます。

リーリー

出力

上記のコードは次の出力を生成します -

リーリー

例 2

この例では、2 つのジェネリック型プロパティを持つ別のジェネリック クラスを開発します。 「KeyValuePair」クラスには、それぞれ T 型と U 型の 2 つのプライベート プロパティ「key」と「value」があります。このクラスには、それぞれキーと値のプロパティを返す 2 つのメソッド「getKey」と「getValue」もあります。

このクラスは、数値、文字列、オブジェクトなどのデータ型を使用してキーと値をインスタンス化できます。 KeyValuePair クラスの 2 つのインスタンスを作成します。1 つはキーとして文字列、値として数値を持ち、もう 1 つは文字列をキーとして、オブジェクトを値として持ちます。このクラスでは、さまざまなデータ型をキーと値として使用できるため、コードがより柔軟で再利用可能になります。

リーリー

コンパイルすると、次の JavaScript コードが生成されます。

リーリー

出力

上記のコードは次の出力を生成します -

リーリー

TypeScript でジェネリック クラスを使用すると、より柔軟で再利用可能で保守しやすいコードが生成されます。さらに、TypeScript の型チェック システムにより、ジェネリック クラスで使用される型がコンパイル時に正しく使用されることが保証され、コードの全体的な品質と安全性がさらに向上します。ジェネリック クラスは、より信頼性が高く再利用可能なコードを作成するために使用できる TypeScript の強力な機能です。

以上がジェネリッククラスの開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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