小编tik*_*zky的帖子

是否可以包装函数并保留其类型?

我正在尝试创建一个通用的包装函数,它将包装传递给它的任何函数.

在最基本的包装函数看起来像

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模仿其包装功能的类型?

typescript

11
推荐指数
4
解决办法
4029
查看次数

如何在回调函数中冒泡Ember动作?

我有一个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是行不通的.

我错过了什么?

controller return callback event-propagation ember.js

5
推荐指数
1
解决办法
2503
查看次数