2013-02-02 12 views
6

Zastanawiam się, w jaki sposób można zadeklarować tablicę z typem funkcji w TypeScript.Tablica funkcji TypeScript

Na przykład, że mam pole, które może pomieścić funkcję, która nie posiada żadnych argumentów i zwraca void:

private func:() => void; 

Teraz, powiedzmy chciałem pole, które może pomieścić szereg takich funkcji:

private funcs:() => void []; 

Jest to oczywiście niewłaściwy sposób, aby zrobić to, co zamierzałem, ponieważ kompilator uważa, że ​​jest to funkcja zwracająca tablicę pustek.

Próbując odizolować deklarację prototypu inline jak w nawiasach:

private funcs2: (() => void ) []; 

powoduje błąd kompilatora.

Czy ktoś ma pomysł, jak to osiągnąć?

+0

Możliwy duplikat: http://stackoverflow.com/q/12706161/24874 –

Odpowiedz

8

Musisz użyć składni dosłownego pełne typu zamiast => skrót:

private funcs: {(): void; }[]; 

Można również zrobić jeśli interfejs, który wygląda zbyt dziwne:

// (elsewhere at top-level) 
interface foo { 
    (): void; 
} 

class etc { 
    private funcs: foo[]; 
} 
Powiązane problemy