Массив функций TypeScript

мне было интересно, как можно объявить массив типизированных функций в TypeScript.

например, скажем, у меня есть поле, которое может содержать функцию, которая не имеет аргументов и возвращает void:

private func: () => void;

Теперь, скажем, я хотел поле, которое может содержать массив таких функций:

private funcs: () => void  [];

это, очевидно, неправильный способ сделать то, что я намеревался, поскольку компилятор считает это функцией, которая возвращает массив пустот.

пытается изолируйте встроенное объявление прототипа круглыми скобками, как в:

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

вызывает ошибку компилятора.

кто-нибудь имеет представление о том, как это может быть достигнуто ?

1 ответов


вам нужно будет использовать полный синтаксис литерала типа вместо => сокращенное:

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

вы также можете сделать интерфейс, если это выглядит слишком странно:

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

class etc {
    private funcs: foo[];
}