我是 typescript 初学者,我很想知道为什么我不能这样做:

const obj: {
  property1: string
  property2: boolean
  property3: function
}

我认为唯一的选择是这样做:
const obj: {
  property1: string
  property2: boolean
  property3: any
}

为什么必须在对象声明上立即在 property3 上实现函数

最佳答案

Typescript确实具有Function类型,这意味着需要一个参数any并返回any结果的函数,尽管我强烈建议您不要使用它。

相反,您应该使用function signature,它允许您显式指定参数类型和返回类型:

let obj: {
  property1: string
  property2: boolean
  property3: (a: string, b: boolean) => number
}

Playground Link

10-08 08:04