Είμαι αγωνίζονται να καταλάβω αν είναι δυνατόν σε γραφομηχανή για να δηλώσει μια στατικά δακτυλογραφημένη σειρά από λειτουργίες.
Για παράδειγμα, μπορώ να το κάνω αυτό:
foo: (data:string) => void = function (data) {};
Αλλά αν θέλετε foo να είναι μια σειρά από λειτουργίες που λαμβάνουν μια σειρά και να επιστρέψει τίποτα, πώς μπορώ να το κάνω;
foo: (data:string) => void [] = [];
Δεν λειτουργεί, γιατί γραφομηχανή νομίζει ότι είναι μια συνάρτηση που παίρνει μια συμβολοσειρά και επιστρέφει μια σειρά από κενό, και δεν φαίνεται να αρέσει μου προσπαθώντας να τυλίξετε τη λειτουργία σε παρένθεση.
Καμιά ιδέα?
Απάντηση : Χάρη στην Mohamed κάτω, εδώ είναι ένα παράδειγμα που λειτουργεί στη γραφομηχανή χαρά:
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();













