我是打字稿初学者,我很想知道为什么我不能这样做:
const obj: {
property1: string
property2: boolean
property3: function
}
我认为唯一的选择是这样做:
const obj: {
property1: string
property2: boolean
property3: any
}
为什么必须在对象声明中立即在 property3 上实现功能?
答案 0 :(得分:6)
Typescript确实具有Function
类型,这意味着一个带有参数any
并返回结果any
的函数,尽管我强烈建议您不要使用它。
相反,您应该使用function signature来允许您明确指定参数类型和返回类型:
let obj: {
property1: string
property2: boolean
property3: (a: string, b: boolean) => number
}
答案 1 :(得分:0)
该属性必须实现,因为它是obj
类型的一部分
如果您不想在声明时初始化属性,则必须将其设为可选。
例如:
const obj: {
property1: string
property2: boolean
property3?: any
}
现在您可以这样做:
obj = { property1: 'A string'. property2: true };