【发布时间】:2020-12-30 05:34:57
【问题描述】:
我有一个带有默认状态值的抽象类,在ResourceState 接口中输入。当我尝试将扩展的 State 分配给我的抽象类的 state 属性时,出现以下错误。我尝试了许多使用交叉点的不同方法,但它仍然不起作用。我想要实现的是,我可以为 state 属性提供一个通用接口,以便我可以添加除默认值之外的更多值。
这是我得到的错误:
输入 '{ items: never[]; isLoading:假;错误:字符串; }' 不可分配给类型 'State'。 '{ 项目:从不[]; isLoading:假;错误:字符串; }' 可分配给“State”类型的约束,但“State”可以用约束“ResourceState”的不同子类型来实例化。
这是我的代码:
export interface BaseItem {
id: string;
name: string;
}
export interface ResourceState < Item extends BaseItem > {
items: Item[];
selectedItem ? : Item;
isLoading: boolean;
error: string;
}
export abstract class Resource < Item extends BaseItem, State extends ResourceState < Item > , Mutations, Getters, Actions > {
state: State = { // this is where the error occurs
items: [],
isLoading: false,
error: '',
}
}
【问题讨论】:
标签: javascript typescript class types abstract-class