2016-04-28 9 views
0

ジェネリッククラスに提供されるジェネリック型の型を判別したいと思う状況にあります。私は労働組合の種類を持っていると仮定すると例えば、私が使用タイプに基づいて、コンストラクタで異なるアクションを取るしたいと思います:私は関数にパラメータの種類を決定することができますが、私は見えることはできません知っているadvanced type sectionからクラス型パラメータの型を決定する型付き

type MyType = string | number; 
class Foo<T extends MyType>{ 
    private _something; 
    constructor(_bar?: SomeFunc<T>){ 
      if(...)? 
    } 
} 

実際のクラスに提供されているジェネリックのタイプをチェックする方法を見つけることができます。 Tを何らかの方法で参照しようとすると「名前Tエラーが見つかりません」(#TS2304)、いくつかの投稿such as this oneが見つかりましたが、最初のリンクに返された関数のパラメータを扱っているようです。

Ifこれは、ますますそのように思われているように、私はここに採用することができる別のパターンがあり、可能ではないでしょうか?

答えて

0
私はジェネリッククラス

に提供ジェネリック型のタイプを決定したいと思います

ジェネリックは が実行時にを消去しています。注釈はランタイムチェックで Tを使用してください。

+0

ありがとうと私は理解しています。私は、使用するメソッドのフォローを選択するために使用できるコンパイル時の操作の多くを探しています。 –

+0

@AndrewHunterあなたは何を望みますか*を提供する必要がありますが、一般的な考え方ではまた、 'T'のインスタンスを与えます。 'コンストラクタ(_bar ?: SomeFunc 、someInstance:T){'そして 'someInstance'のチェックをすることができます – basarat

+0

応答のために、私は離れてインスタンスを提供しようとしたいと考えていたが、可能なTypescript。私はそのパターンを使用します、もう一度ありがとう。 –

関連する問題