序文: 宣言のマージとは、実際にはコンパイラが同じ名前の宣言を 1 つの宣言にマージすることを意味します。マージの結果、マージされた宣言は元の 2 つ以上の宣言の特性を同時に持つことになります。 インターフェースのマージでは、内部のメンバーに関数メンバーがあるかどうかが必要です。内部の関数メンバーについては、同じ名前を持つ各関数宣言がこの関数のオーバーロードとして扱われます。インターフェース A が後のインターフェース A とマージされると、後のインターフェースが優先されます。 今日はTSの宣言のマージについてもお話ししますが、今回は名前空間関連のマージについてです。 主な側面は 2 つあります。1 つは同じ名前の名前空間のマージであり、もう 1 つは他のタイプの名前空間のマージです。以下、一つずつ説明します 同じ名前の名前空間をマージするインターフェースのマージと同様に、同じ名前を持つ 2 つ以上の名前空間のメンバーもマージされます。 では、具体的にどのように統合するのでしょうか? 同じ名前の名前空間をマージする場合は、次の 4 つの点に注意してください。
例えば: 名前空間動物 { クラス Cat をエクスポートします { } } 名前空間動物 { エクスポートインターフェース Legged { numberOfLegs: number; } クラス Dog をエクスポートします { } } は以下と同等です: 名前空間動物 { エクスポートインターフェース Legged { numberOfLegs: number; } エクスポートクラス Cat { } クラス Dog をエクスポートします { } } 上記の例では、同じ名前 名前空間とその他の種類のマージ名前空間は、クラスや関数、列挙型などの他のタイプの宣言と組み合わせることができます。 同じ名前の名前空間とクラスをマージする例えば: クラスアルバム{ ラベル: Album.AlbumLabel; } 名前空間アルバム { export class AlbumLabel { } // マージされたクラスがアクセスできるように `AlbumLabel` クラスをエクスポートします } 名前空間とクラスを統合すると、内部クラスを持つクラスが作成される。 同じ名前の名前空間と関数をマージする上記の内部クラス パターンに加えて、 たとえば、公式の例: 関数buildLabel(名前: 文字列): 文字列 { buildLabel.prefix + name + buildLabel.suffix を返します。 } 名前空間ビルドラベル { エクスポートlet suffix = ""; エクスポート let prefix = "こんにちは、"; } console.log(buildLabel("サム・スミス")); 同じ名前を持つ名前空間と列挙列挙を拡張するために使用できます。公式の例を見てみましょう。 列挙型カラー{ 赤 = 1、 緑 = 2、 青 = 4 } 名前空間カラー{ エクスポート関数mixColor(colorName: 文字列) { if (colorName == "黄色") { Color.red + Color.green を返します。 } そうでない場合 (colorName == "white") { Color.red + Color.green + Color.blue を返します。 } そうでない場合 (colorName == "マゼンタ") { Color.red + Color.blue を返します。 } それ以外の場合は (colorName == "シアン") { Color.green + Color.blue を返します。 } } }
TS 名前空間のマージに関するこの記事はこれで終わりです。TS 名前空間のマージに関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Docker を使用した nextcloud パーソナル ネットワーク ディスクの構築に関するチュートリアル
腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...
ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...
この記事では、適応解像度を実現するためのVue2.0の具体的なコードを参考までに紹介します。具体的な...
【歴史的背景】私は 3 年間 MySQL-DBA として働いてきましたが、MySQL が「基本的に利...
目次混合継承の影響: 1. 継承Vue.extend メソッドプロパティを拡張する2. ミックスイ...
目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...
MySQL は、ユーザーごとに 2 つの異なるバージョンを提供します。 MySQL コミュニティ サ...
今日、CSDN の Q&A セクションで友人が質問をしているのを見ました。彼は 1 次元配列...
Windows10 Home Edition でHyper-vを有効にする方法をまだ探していますか?...
目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...
コンピュータに初めて MySQL をインストールする場合、通常このエラー メッセージは表示されません...
a タグは主にページ ジャンプを実装するために使用され、これは href 属性または onclick...
1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...
<br />前回の記事:優秀なデザイナーの7つの原則(1):フォントデザイン 英語 原文...
問題: mybatis によって返される null 型のデータが消え、フロントエンドの表示にエラーが...