sto lottando per capire se è possibile a macchina di dichiarare una matrice a tipizzazione statica di funzioni.Un Typed gamma di funzioni
Per esempio, posso fare questo:
foo: (data:string) => void = function (data) {};
Ma se voglio foo di essere una serie di funzioni che richiedono una stringa e restituiscono nulla, come posso fare questo?
foo: (data:string) => void [] = [];
non funziona perché dattiloscritto pensa che sia una funzione che prende una stringa e restituisce un array di vuoto, e non sembra come me cercando di avvolgere la funzione tra parentesi.
Qualche idea?
Risposta: Grazie a mohamed di sotto, ecco un esempio che funziona nel dattiloscritto Playground:
class whatever {
public foo: { (data: string): void; }[] = [];
dofoo() {
for (var i=0; i < this.foo.length; i++) {
this.foo[i]("test");
}
}
}
var d = new whatever();
d.foo.push(function(bar){alert(bar)})
d.foo.push(function(bar){alert(bar.length.toString())})
d.dofoo();
possibile duplicato di [a macchina come faccio a dichiarare una serie di funzioni che accettano una stringa e restituire una stringa?] (Http://stackoverflow.com/questions/12706161/in-typescript-how-do-i-declare -un-array-di-funzioni-che-accept-a-stringa-e-ri) – Fenton