Haxeの静的フィールドに対する制約はありますか?たとえば、対応するクラスの型の静的フィールドinstance
を持つクラスを持つことができます。また、パラメータとして渡されたクラスのインスタンスを返す関数が必要な場合があります。これは私の試みです:静的フィールドと型推論の制約
class Foo {
static public var instance = new Foo();
function new() {}
}
class Test {
// get instance from every class that have static field instance
static function getInstance<T, ClassT:({instance:T}, Class<T>)>(t:ClassT):T {
return t.instance;
}
static function main() {
var a = getInstance(Foo);
$type(a); //Test.hx:14: characters 14-15 : Warning : Unknown<0>
}
}
が原因で失敗します。どのようにこれを行うには任意のアイデア?マクロを使用してもかまわない場合
が簡単にちょうどこのように行う、マクロを使用している場合ではない、非常に便利です、あまりにものtypedefを制約return macro $ e.instance; ' – romamik
もちろん、すべてをマクロに移動しないようにします。必要に応じて、マクロコードに入れずに関数を拡張することができます。 – KevinResoL
それは良い点だ – romamik