【发布时间】:2016-03-31 14:09:41
【问题描述】:
我是 TypeScript 新手。
我想定义具有任何类型参数的函数类型。 函数可以有一个参数,也可以有两个以上的参数。
我应该怎么写?
(args: any) => any
只有当一个参数被传递给函数时,上面的这种写法才有效。
class NotificationCenter {
private observerList: Array<() => any>;
constructor() {
this.observerList = [];
}
addObserver(observer: () => any): void {
this.observerList.push(observer);
}
}
let notificationCenter: NotificationCenter = new NotificationCenter();
let observer1 = () => {};
let observer2 = (text: string) => {return "observer2"};
let observer3 = (id: number, data: Array<any>) => {return "observer3"};
//This works fine.
notificationCenter.addObserver(observer1);
//Error:Argument of type '(text: string) => string' is not assignable to parameter of type '() => any'.
notificationCenter.addObserver(observer2);
//Error:Argument of type '(id: number, data: any[]) => string' is not assignable to parameter of type '() => any'.
notificationCenter.addObserver(observer3);
【问题讨论】:
-
我想你想要的是
(...params : any[]) => any。见this -
谢谢!这就是我需要的!
标签: javascript typescript