fonksiyonların Türlenmiş dizi

oy
43

Bunun typescript fonksiyonlarının statik olarak yazılan diziyi bildirmek için mümkün olmadığını anlamaya mücadele ediyorum.

Örneğin, ben bunu yapabilirsiniz:

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

Ben bir dize alıp hiçbir şey döndüren işlevler bir dizi olmasını foo istiyorum Ama eğer, bunu nasıl yapacağım?

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

Typescript bir dize alır ve boşluğun bir dizi döndüren bir fonksiyon olduğunu düşünür ve beni parantez içinde işlevini tamamlamaya çalışırken ister görünmüyor çünkü çalışmaz.

Herhangi bir fikir?

Cevap : mohamed sayesinde aşağıda, burada typescript Oyun çalışan bir örnek:

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();
Oluştur 04/10/2012 saat 20:41
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
61

Söz konusu yeni bulabilirsiniz dil spec bölümünde 3.5.5:

foo: { (data: string): void; } []
Cevap 04/10/2012 saat 20:55
kaynak kullanıcı

oy
28

Diğer (daha yeni, daha okunabilir) yolu yağ oklarla işlevleri içeren bir dizi yazmak için:

let foo: Array<(data: string) => void>;
let bar: ((data: string) => void)[];
Cevap 23/04/2017 saat 15:28
kaynak kullanıcı

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