我正在尝试创建一个定义其他类型值的对象类型。
我特意有这个:
LocalDate
我现在想要将其更改为包含其他类型的项目列表。我尝试了以下但是我收到了一个错误:
索引签名参数类型不能是联合类型。请考虑使用映射对象类型。
export interface Obj {
[key: string]: any
}
因此,我尝试了这个错误:
type ListOfMethods = {
one(): void
two(): void
}
export interface Obj {
[key: keyof ListOfMethods]: any
}
现在出现此错误
计算属性名称必须是'string','number','symbol'或'any'类型。
答案 0 :(得分:2)
您必须将Obj
定义为:
export type Obj = {
[key in keyof ListOfMethods]: any
}
如果您使用:
,则表示密钥类型,密钥类型只能是number
或string
。
keyof
创建一个string
的子类型,只允许其中的值为参数对象的属性。在这种情况下,keyof ListOfMethods
为'one' | 'two'
。