Skip to content

调用签名

在JavaScript中,除了可调用之外,函数还可以有属性。然而,函数类型表达式的语法不允许声明属性。 如果我们想用属性来描述可调用的东西,我们可以在一个对象类型中写一个调用签名。

typescript
type DescribableFunction = { 
  description: string; 
  (someArg: number): boolean; 
}

function doSomething(fn: DescribableFunction) { 
  console.log(fn.description + " returned " + fn(6)); 
}

function fn1() { 
  return true 
}
fn1.description = 'balabala...' 

doSomething(fn1)

注意,与函数类型表达式相比,语法略有不同:在参数列表和返回类型之间使用 : 而不是 => 。