2
我是新來的打字稿具有參數函數類型。打字稿 - 如何定義與任何類型的
我想要定義與任何類型的具有參數函數類型。 該函數可能有一個參數或兩個以上的參數。
我該怎麼寫?
(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'。參見[這](http://stackoverflow.com/questions/12699058/typescript-types-for-variadic-functions) – tforgione
謝謝!這就是我需要的! – hytm