Массив функций 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[];
}