我是泛型新手,我做了一个设计,使用泛型来提高代码灵活性。但就我而言,我遇到了一个奇怪的问题,出现上述错误。我的要求是,我希望能够将值从基类的子类的子类传递到基类,以便在基类中执行操作并将值返回给子类。我在这里附上了我的代码片段。 游乐场
在这里,您可以找到错误并帮助我重构我的代码,以便我可以在基础级别引入所有操作,或者帮助我通过针对我的案例的任何解决方法来解决此错误。
错误消息可能是对您的解释:
类型“SubConstructor”不可分配给类型“B”。 “SubConstructor”可分配给类型“B”的约束,但“B”可以使用约束“BaseConstructor”的不同子类型进行实例化。
我在这里切断了通用约束。不确定它是否真的对您有帮助:
export abstract class Base {
protected prop1: BaseConstructor|undefined;
}
export class SubBase extends Base {
constructor() {
super()
this.prop1 = new SubConstructor('Here')
}
}
export class BaseConstructor {
protected id!: number
}
export class SubConstructor extends BaseConstructor{
// some properties
subProp1: string = ''
constructor(subProp1: string) {
super()
this.subProp1 = subProp1
}
}
export class SubBaseChild extends SubBase {
constructor() {
super()
}
}
export class SubBaseChildConstructor extends BaseConstructor {
subChildProp: number = 0
constructor(subChildProp: number) {
super()
this.subChildProp = subChildProp
}
}