序文: 宣言のマージとは、実際にはコンパイラが同じ名前の宣言を 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 パーソナル ネットワーク ディスクの構築に関するチュートリアル
1. ダウンロードまず、MySQLの国内ミラーをお勧めします。特に速いわけではありませんが、それで...
<テンプレート> <div class="アプリコンテナ"&...
1. ダウンロードアドレス:参考: http://dev.mysql.com/downloads/m...
これは Linux 管理者にとって重要な (そして素晴らしい) トピックなので、誰もが Linux ...
目次1. 準備2. 展開プロセス3. アクセステストHalo は、ブログに慣れている学生に追加のオプ...
今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...
まず最初に、適切なブラウザを選択します。私が Chrome を選択したのは、その強力なデバッグ ツー...
まずmysqlの圧縮バージョンをダウンロードします。公式ダウンロードアドレスは123WORDPRES...
1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...
今では、自宅のソファーに座っていても、外の喫茶店にいても、ノートパソコンの電源を入れてWi-Fiに接...
2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...
序文エージェントの役割は何ですか? - 複数のドメイン名が同じサーバーに解決される- 1つのサーバー...
目次1. SVNとは何か2. SVNサーバーとクライアントの取得方法3. SVN ワークフローとアー...
Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...
セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...