Jak zadeklarować metodę wiązania funkcja dla maszynopis

głosy
1

Staram się używać razem z Mootools maszynopis. MooTools, a niektóre nowoczesne przeglądarki obsługują .bind metodę, która jest polimorficzny.

W jaki sposób można prawidłowo deklarują tej funkcji w pliku * .d.ts, aby móc korzystać z takich konstruktów [1,2] .map (this.foo.bind (this)); ?

Wiem, że można uniknąć takich konstruktów za pomocą lambdy, ale czasami nie chcą.

Być może nie jest to mootools.d.ts złożyć gdzieś które mogę pobrać zamiast wymyślania to sam?

Utwórz 08/10/2012 o 17:35
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
1

lib.d.ts maszynopis już definiuje podpis funkcja BIND w interfejsie funkcji w następujący sposób:

bind(thisArg: any, ...argArray: any[]): Function;

Nie sądzę, że istnieje lepszy sposób to zrobić aż generycznych dodane do języka.

Na razie jednak, jeśli chcesz używać wiązania i odbiorcą uzyskanej funkcja oczekuje konkretnej podpis, będziesz musiał rzucać funkcję z powrotem do tego podpisu:

var bfn : (p: number) => string;
bfn = <(p: number) => string> fn.bind(ctx);
Odpowiedział 08/10/2012 o 19:03
źródło użytkownik

głosy
0

Istnieje rosnąca lista plików definicji śledzone są tutaj .

Jeśli chodzi o generowanie metod wstępnie zobowiązane do ich tego wskaźnika w maszynopisie Mam sugerowanej dwa sposoby robienia tego. 1) prosty klasy bazowej I określonych w końcu tego gwintu . oraz 2) bardziej zaawansowanego systemu wstawionej & atrybutu tutaj .

Odpowiedział 08/10/2012 o 18:48
źródło użytkownik

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