javascript - tip TypeScript cu instanțiere de semnătură de apel
În timp ce citeam documentația TypeScript, am dat peste asta:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}
Cum pot să creez o instanță a DescribableFunction?
Răspuns #1
Editare: iată metoda mai curată: linkul răspunsului SO
Nu văd cum ai putea să faci asta fără casting. Aș crea o funcție separată pentru crearea DescribableFunction:
function createDesirableFunction(description: string, func: (someArg: number) => boolean): DescribableFunction {
const result = func;
(result as DescribableFunction).description = description;
return result as DescribableFunction;
}
Iată-l în acțiune: Typescript Playground
