我认为这不可行,但有没有办法验证回调接受的参数。例如有人传递给我回调“mycallback”,我想断言它接受一个参数String。
public function addHandler(handler : Function) : void{
//pseudo code
Assert.functionAcceptsArguments(handler, String);
}
干杯
答案 0 :(得分:2)
不,你不能。如果你有一些对象作为参数,你可以使用describeType
来返回有关方法的信息。但是Function
只是一个函数,没有关于参数的信息。
为了确保您获得正确的方法签名,您可以传递类型对象而不是函数。例如
interface Bla {
funciton invoke(value:String):void;
}
function addHandler(handler:Bla):void {}