type x与type缺少以下属性,但这两个type值是不同的类型


type _VariableTypes = "propertyA"|"propertyB"
interface _VariableValues {
propertyA?: {
value: string
type: "INCLUDE"|"EXCLUDE"
}
propertyB?: {
value: number
type: "INCLUDE"|"EXCLUDE"
}
}
class Achievement {
private Data:_VariableValues
constructor () {
this.Data = {}
}
addVariable ( type:_VariableTypes, value:_VariableValues ) {
this.Data[type] = value
}
}
(parameter) type: _VariableTypes
Type '_VariableValues' is not assignable to type '{ value: string; type: "INCLUDE" | "EXCLUDE"; } & { value: number; type: "INCLUDE" | "EXCLUDE"; }'.
Type '_VariableValues' is missing the following properties from type '{ value: string; type: "INCLUDE" | "EXCLUDE"; }': value, typets(2322)

我不知道为什么这会给我一个错误,我使用的是相同的类型,但它说缺少了一些东西。我尝试将interface更改为type,但它无法解决错误

可以用这种方法解决。

type Propertytypes = "propertyA"|"propertyB"
type Type = "INCLUDE" | "EXCLUDE"
type VariableTypeA = {
value: string,
type: Type
}
type VariableTypeB = {
value: number,
type: Type
}
type VariableTypes = VariableTypeA | VariableTypeB
type DataType = Record<Propertytypes, VariableTypes>
class Achievement {
private Data: DataType
constructor () {
this.Data = {} as DataType
}
addVariable ( type: Propertytypes, value: VariableTypes ) {
this.Data[type] = value
}
}

游乐场链接

相关内容

最新更新