Mientras leía la documentación de TypeScript me topé con esto:
type DescribableFunction = { description: string; (someArg: number): boolean; }; function doSomething(fn: DescribableFunction) { console.log(fn.description + " returned " + fn(6)); }¿Cómo puedo crear una instancia de DescribableFunction?
Editar: aquí está la forma más limpia: enlace de respuesta SO
No veo cómo puedes hacerlo sin lanzar. Crearía una función separada para crear DescribableFunction :
function createDesirableFunction(description: string, func: (someArg: number) => boolean): DescribableFunction { const result = func; (result as DescribableFunction).description = description; return result as DescribableFunction; }Aquí está en acción: Typescript Playground