TSで最も一般的な宣言マージ(インターフェースマージ)

TSで最も一般的な宣言マージ(インターフェースマージ)

序文:

今日お話ししたいのは、やはりTSに関連したものです。TSで最も一般的な宣言のマージは、インターフェースのマージです。

インターフェースのマージについて話す前に、宣言のマージについて話しましょう

宣言のマージ:

宣言のマージとは何ですか?

実際、TS での宣言のマージは、コンパイラが同じ名前の宣言を 1 つの宣言にマージすることを意味することは簡単に理解できます。

合併の結果:

結合された宣言は、2 つ以上の元の宣言の特性を持ちます。

疑い:
では、これら 2 つ以上は具体的に何を指しているのでしょうか?

実際には、話すべき状況はいくつかあります。今日はそのうちの 1 つについてお話します。宣言のマージの最も単純で最も一般的なタイプは、インターフェースのマージです。

1. マージインターフェース

「統合された宣言は、2つ以上の元の宣言の特徴を持つ」と述べました。

同じことはインターフェースのマージにも当てはまり、両方のパーティのメンバーが同じ名前のインターフェースに配置されます。

インターフェース内のメンバーには関数メンバーと非関数メンバーが含まれており、状況が異なることに注意する必要がある。

1.1 非関数メンバー

例えば:

インターフェースボックス{
    高さ: 数値;
}

インターフェースボックス{
    幅: 数値;
}

box: Box = {高さ: 2、幅: 3}とします。


上記のコードでは、同じ名前Boxを持つ 2 つのインターフェースが定義されています (実際の開発では、これらは異なるファイルから取得される場合があります)。最終的には、その内容が混在することになります。

ただし、上記の場合のメンバーは一意であることに注意してください。ただし、2 つのインターフェースが同じ名前の非関数メンバーを宣言し、その型が異なる場合、コンパイラはエラーを報告します。

1.2 関数メンバー

内部の関数メンバーについては、同じ名前を持つ各関数宣言がこの関数のオーバーロードとして扱われます。そして、インターフェースAが後のインターフェースAと統合されると、後のインターフェースの方が優先度が高くなります。

たとえば、公式の例:

インターフェースクローナー{
    クローン(動物: 動物): 動物;
}

インターフェースクローナー{
    クローン(動物: 羊): 羊;
}

インターフェースクローナー{
    クローン(動物: 犬): 犬;
    クローン(動物: 猫): 猫;
}


最終的には、次のように 1 つのステートメントにまとめられます。

インターフェースクローナー{
    クローン(動物: 犬): 犬;
    クローン(動物: 猫): 猫;
    クローン(動物: 羊): 羊;
    クローン(動物: 動物): 動物;
}


注意すべき点が 2 つあります。

  • 各インターフェースグループ内の宣言順序は変更されません。
  • インターフェースのグループ間の順序は、後のインターフェースオーバーロードが最初の位置に表示されることです。

ただし、特別な関数シグネチャが表示される場合は例外です。 シグネチャ内のパラメータの型が単一の文字列リテラル(つまり、文字列リテラルの結合ではない)である場合、そのパラメータはオーバーロード リストの先頭に昇格されます。

TS で最も一般的な宣言のマージ (インターフェースのマージ) に関するこの記事はこれで終わりです。TS でのインターフェースのマージについてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  HTML のボタン タグをクリックしてページにジャンプする 3 つの方法

>>:  DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

推薦する

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

テーブルはセルとimg画像を結合してtd HTML全体を埋めます

ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...

背景画像のみを180度回転させるCSS3実装例

1. 心の旅最近コックピットを書いていたときに、背景画像を単純に特定の角度に回転させるという問題につ...

XHTML チュートリアル: Transitional と Strict の違い

実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...

JavaScript を使用してハイパーリンクのリダイレクトを防ぐ方法 (複数の書き方)

JavaScript を使用すると、ハイパーリンクがジャンプするのを防ぐことができます。方法は次の...

HTMLはシンプルで美しいログインページを作成します

まずは見てみましょう。 HTML ソースコード: XML/HTML コードコンテンツをクリップボード...

HTML ハイパーリンクの詳細な説明

ハイパーリンクハイパーリンクは、Web サイト上のすべてのページがハイパーリンクで接続され、ページ間...

JavaがMySQL 8.0に接続できない問題の解決策

この記事では、参考までにMySQL 8.0に接続できないJavaの問題をまとめて紹介します。具体的な...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

Vueはミックスインを使用してコンポーネントを最適化します

目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...

フロントエンドコンポーネント化の基礎知識を詳しく解説

目次コンポーネントの基本概念オブジェクトとコンポーネントの違い成分属性属性とプロパティ属性:財産:ク...

純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...

MySQL カーソル関数と使用法

目次意味カーソルの役割カーソルの使用カーソルの宣言カーソルを開くカーソルデータのトラバースカーソルを...

Ubuntu 18.04 (物理マシン) で OpenWRT 開発環境を構成する方法

1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...

LinuxでJenkinsのパスワードを忘れる方法

1.Jenkinsのインストール手順: https://www.jb51.net/article/1...