2016-03-27 9 views
2

私は、キーの一般的なタイプは、haXeので、このマップにあるかを把握しようとしています:http://try.haxe.org/typeof経由Haxeのクラスの種類は?

var foo = [ 
    Foo => new Foo() 
]; 

This is me trying to figure it outが、私は、出力のあまり意味を作ることができませんよ。

私の場合は、このような型を推論することはできず、事前に宣言する必要があります(Map<ClassOrSomething, Foo>)。

答えて

4

あなたの質問にお答えするには、クラスのタイプはClass<T>です。たとえば、Class<Foo>またはClass<Dynamic>の両方があなたのケースで有効です。

しかし、classes can't be used as map keys(古い問題ですが、これは私の知る限りですが)これに代わる方法として、キーに文字列クラス名を使用する方法があります。クラス名をType.getClassName(Foo)で取得し、文字列をType.resolveClassのクラスに戻すことができます。 (Haxe Type documentation

+0

その答えをありがとう。ただし、キーを使用すると、ここで機能するようです:http://try.haxe.org/#6B8a0。おそらく彼らはこれを実装することに慣れていますか?あるいは、それはちょうどjsターゲット上で動作します。 –