En type rekke funksjoner

stemmer
45

Jeg sliter med å finne ut om det er mulig i Loggfila å erklære en statisk skrevet utvalg av funksjoner.

For eksempel kan jeg gjøre dette:

foo: (data:string) => void = function (data) {};

Men hvis jeg vil foo å være en rekke funksjoner som tar en streng og returnerer ingenting, hvordan gjør jeg det?

foo: (data:string) => void [] = [];

Fungerer ikke fordi Loggfila mener det er en funksjon som tar en streng og returnerer en matrise av tomrom, og det ser ikke ut til å like meg å prøve å vikle funksjonen i parentes.

Noen ideer?

Svar : Takk til mohamed nedenfor, her er et eksempel som fungerer i Loggfila 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();
Publisert på 04/10/2012 klokken 19:41
kilden bruker
På andre språk...                            


2 svar

stemmer
63

Du kan finne dette i språket spec avsnitt 3.5.5:

foo: { (data: string): void; } []
Svarte 04/10/2012 kl. 19:55
kilden bruker

stemmer
29

Andre (nyere, mer lesbare) måter til å skrive en rekke funksjoner med fete piler:

let foo: Array<(data: string) => void>;
let bar: ((data: string) => void)[];
Svarte 23/04/2017 kl. 15:28
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more