Actualmente tengo definición de tipo como:
interface Param { title: string; callback: any; }Necesito algo como:
interface Param { title: string; callback: function; }pero el segundo no está siendo aceptado.
La Function de tipo global sirve para este propósito.
Además, si tiene la intención de invocar esta devolución de llamada con 0 argumentos e ignorará su valor de retorno, el tipo () => void coincide con todas las funciones que no toman argumentos.
Typescript de v1.4 tiene la palabra clave type que declara un alias de tipo (análogo a typedef en C/C++). Puede declarar su tipo de devolución de llamada así:
type CallbackFunction = () => void;que declara una función que no toma argumentos y no devuelve nada. Una función que toma cero o más argumentos de cualquier tipo y no devuelve nada sería:
type CallbackFunctionVariadic = (...args: any[]) => void;Entonces puedes decir, por ejemplo,
let callback: CallbackFunctionVariadic = function(...args: any[]) { // do some stuff };Si desea una función que tome un número arbitrario de argumentos y devuelva cualquier cosa (incluido el vacío):
type CallbackFunctionVariadicAnyReturn = (...args: any[]) => any;Puede especificar algunos argumentos obligatorios y luego un conjunto de argumentos adicionales (digamos una cadena, un número y luego un conjunto de argumentos adicionales) así:
type CallbackFunctionSomeVariadic = (arg1: string, arg2: number, ...args: any[]) => void;Esto puede ser útil para cosas como los controladores de EventEmitter.
Las funciones pueden escribirse con la fuerza que desee de esta manera, aunque puede dejarse llevar y encontrarse con problemas combinatorios si intenta definir todo con un alias de tipo.
A raíz de la respuesta de Ryan, creo que la interfaz que está buscando se define de la siguiente manera:
interface Param { title: string; callback: () => void; }