我正在尝试创建一个通用的包装函数,它将包装传递给它的任何函数.
在最基本的包装函数看起来像
function wrap<T extends Function>(fn: T) {
return (...args) => {
return fn(...args)
};
}
Run Code Online (Sandbox Code Playgroud)
我想尝试使用它:
function foo(a: string, b: number): [string, number] {
return [a, b];
}
const wrappedFoo = wrap(foo);
Run Code Online (Sandbox Code Playgroud)
现在wrappedFoo正在获得一种类型(...args: any[]) => any
是否有可能wrappedFoo模仿其包装功能的类型?
我有一个Ember应用程序,我正在使用一个动作来应用CSS动画.一旦动画完成,我想将操作从控制器冒泡到我的路线以处理更多功能.
我知道如果我return: true;的动作会冒出来,就像这里所解释的那样.
这就是我的控制器的样子:
App.MyController = Ember.ObjectController.extend({
actions: {
myAction: function() {
$('.my-element').addClass('my-animation-class').one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) {
console.log('working');
return true;
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我在animationend回调中将某些内容记录到我的控制台,我可以看到它正常工作,如果我移出return: true;回调,则该动作会成功冒泡.但是,在回调内部返回true是行不通的.
我错过了什么?