web-dev-qa-db-ja.com

複数のインターフェースを実装するためのTypeScriptタイプパラメーター

C#では、これを行うことができます:

class Dictionary<TKey, TVal> where TKey : IComparable, IEnumerable { }

TypeScript 1.5 betaに、ジェネリッククラスまたは関数の型パラメーターが、目的のためにまったく新しいインターフェイスを作成せずに、複数のインターフェイスを実装する方法はありますか?

カンマがあいまいなため、明らかな方法は明らかに機能していません。

class Dictionary<TKey extends IComparable, IEnumerable, TValue> { }

ちなみに、おかしなことに、extendsは、ジェネリックスでインターフェイスユニオンを完全にうまく処理できます。

class Dictionary<TKey extends IComparable|IEnumerable, TValue> { }
12
Matt

交差型 TS 1.6以降、ここにあり、上記の例では次のように使用できます。

class Dictionary<TKey extends IComparable & IEnumerable, TValue> { }
22
Alex

TS1.5では、それを実行できる唯一の方法は、悲しいことに、AとBを拡張する新しいインターフェイスを宣言することです。

もう1つの方法は、 交差型 がサポートされている次のTS1.6を祈ることです。