传递箭头函数数组

时间:2014-11-26 18:18:57

标签: arrays typescript arrow-functions

我需要像这样的箭头函数数组

//how can we contain the list of tasks?
private _tasks : ((x: T) => boolean)[];

constructor(...tasks : ((x: T) => boolean)[]) {
    this._tasks = tasks;
}

有什么方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:2)

内联声明的括号错误。使用{而不是(

class Foo<T>{
    private _tasks: { ( x: T ): boolean }[];

    constructor( ...tasks: { ( x: T ): boolean }[] ) {
        this._tasks = tasks;
    }
}

正如史蒂夫芬顿所说,我只是使用界面来删除重复。

答案 1 :(得分:1)

这似乎对我有用

private _tasks :Array<(x: T) => boolean>;

答案 2 :(得分:1)

您可以使用界面使类型更具可读性:

interface Task<T> {
    (x: T) : boolean;
}

function example<T>(...tasks: Task<T>[]) {

}

example(
    (str: string) => true,
    (str: string) => false  
);