javascript - 带有调用签名实例化的 TypeScript 类型
在阅读 TypeScript 文档时,我偶然发现了这个:
type DescribableFunction = {
description: string;
(someArg: number): boolean;
};
function doSomething(fn: DescribableFunction) {
console.log(fn.description + " returned " + fn(6));
}
我如何创建一个 DescribableFunction 的实例?
答案#1
编辑:这里有更清晰的方法:SO答案链接
我不明白你不进行类型转换怎么能做到。我会为创建 DescribableFunction 创建一个单独的函数:
function createDesirableFunction(description: string, func: (someArg: number) => boolean): DescribableFunction {
const result = func;
(result as DescribableFunction).description = description;
return result as DescribableFunction;
}
这里是它的实际演示:Typescript Playground
