В TypeScript вы можете установить типы аргументов, например:
function x(y: string[], z?: Function)
Как вы устанавливаете типы для аргументов аргумента функции?
Например, вот что я могу себе представить:
function x(y: string[], z?: Function(a: any, b: any))