consequential interface

派生的インターフェイス群 (Web IDL)

[7] インターフェイス派生的インターフェイス群 (consequential interfaces) とは、 そのインターフェイス実装するオブジェクトが、そのインターフェイス自体に関する implements によって実装することとなるインターフェイス集合です。

[13] 派生(した)インターフェイス (derived interface) とは異なります。

仕様書

定義

[8] あるインターフェイス派生的インターフェイス群は、

... によって構成されます >>6

[12] 補助的インターフェイスと似ていますが、補助的インターフェイスには継承インターフェイスimplements によって実装することとなるインターフェイスが含まれるのに対し、 こちらではそれらは含まれず、直接 implements しているものに限定されています。

制限

[26] インターフェイス露出集合は、その派生的インターフェイス群のすべてのインターフェイス露出集合部分集合になっていなければなりません >>27

[2] コールバックインターフェイスは、派生的インターフェイス群を持つことができません >>1

[14] インターフェイスとその派生的インターフェイス群を通して、 メンバーの名前が衝突してはなりません >>6, >>18

[17] オブジェクト特殊演算を定義するインターフェイスを複数個実装する場合、 どれが呼び出されるかは未定義です >>16

[19] GlobalPrimaryGlobal が指定されたインターフェイスでは、 インターフェイスとその派生的インターフェイス群を通じて、 文字列化器直列化器はそれぞれ高々1回しか宣言できません >>18

[5] インターフェイスとその派生的インターフェイス群を通して、 反復器 >>3, >>18反復器オブジェクト >3 はそれぞれ高々1回しか宣言できません。

[4] 反復器オブジェクトインターフェイスとその派生的インターフェイス群においては、 next という名前のインターフェイスメンバーを持つことができません >>3

[20] MapClass インターフェイスとその派生的インターフェイス群においては、 clear, delete, forEach, get, has, set という名前のインターフェイスメンバーの利用に関する制約があり、 size, entries, keys, values という名前のインターフェイスメンバーを持つことができません。

[22] unforgeable属性演算が定義されたインターフェイス継承インターフェイスであるようなインターフェイスとその派生的インターフェイス群においては、 その属性演算と同じ名前の静的ではない属性通常演算を持つことはできません >>21

[23] 定数はいいのでしょうか...

JavaScript における扱い

[24] 派生的インターフェイス群メンバーは、JavaScript においては元のインターフェイスメンバーとマージされた状態で存在します。 前の章に示した各種の制限は、ここでの衝突を回避するためのものです。

[25] 通常はそれらはインターフェイスオブジェクトに現れ、対象となるオブジェクトプロトタイプとして存在することで機能しますが、 unforgeable な場合や Global/PrimaryGlobal な場合には、オブジェクトに直接現れます。