Какой тип задавать функции внутри класса typescript

Переписываю js на ts и столкнулся с проблемой типизации функций в классе. Имеется родительский класс, в данном классе массив, в который, соответсвенно, пушатся функции вызывающиеся по подписке.

export default class EventEmitter {
    constructor () {
        this._handlers = []
    }

    addChangeEventListener(handler) {
        this._handlers.push(handler)
    }

    executeHandlers() {
        this._handlers.forEach((handler) => {
            handler()
        })
    }
}

Вопрос собственно такой: не пойму какой класс указать переменной handler и соответственно типу данных в массиве. Благодарю.


Ответы (3 шт):

Автор решения: Zhihar
  1. всегда можно указать any
  2. поскольку это массив, то можно указать Array<any>
→ Ссылка
Автор решения: cassius

Можно использовать тип Function, тип для массива Array<Function>.

→ Ссылка
Автор решения: Stepan Kasyanenko

Если ваши функции имеют определенный набор аргументов, то можно указать точно

    addChangeEventListener(handler:(a:number, b: number)=>number) {
        this._handlers.push(handler)
    }

Или, если будет использоваться в нескольких местах, то можно создать тип

    type myFunc = (a: number, b: number) => number;
    addChangeEventListener(handler: myFunc) {
        this._handlers.push(handler)
    }
→ Ссылка