TypeScript konusunda yeniyim.TypeScript - Herhangi bir türdeki argümanlara sahip İşlev Tipi nasıl tanımlanır?
Herhangi bir Tür ile argümanlara sahip İşlev Türü tanımlamak istiyorum. İşlev, bir bağımsız değişken veya ikiden fazla bağımsız değişken olabilir.
Nasıl yazmalıyım?
(args: any) => any
Yukarıdaki şekilde yazmak, yalnızca bir bağımsız değişken işleve iletildiğinde çalışır.
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);
Bence istediğin şey '(... params: any []) => any'. Bkz. [This] (http://stackoverflow.com/questions/12699058/typescript-types-for-variadic-functions) – tforgione
Teşekkürler! İhtiyacım olan bu! – hytm