Проверка параметров в предоставленной функции обратного вызова в Actionscript - PullRequest
0 голосов
/ 29 февраля 2012

Я не думаю, что это возможно, но есть ли способ проверить аргументы, которые принимает обратный вызов.Например, кто-то передает мне обратный вызов «mycallback», я хочу утверждать, что он принимает аргумент String.

public function addHandler(handler : Function) : void{
    //pseudo code 
    Assert.functionAcceptsArguments(handler, String);
 }

Cheers

1 Ответ

2 голосов
/ 29 февраля 2012

Нет, ты не можешь. Если у вас есть какой-то объект в качестве аргумента, вы можете использовать describeType, который также возвращает информацию о методах. Но Function - это просто функция без информации об аргументах.

Чтобы быть уверенным, что вы получите правильную сигнатуру метода, вы можете передавать типизированные объекты, а не функции. Например

interface Bla {
  funciton invoke(value:String):void;
}

function addHandler(handler:Bla):void {}
...