typescript - 需要抽象属性的抽象类
问题描述
我正在使用这些双重抽象类,并且我试图要求第二个抽象类具有另一个抽象类的属性。但它失败了。
abstract class Static<C extends {[key: string]: any}> {
abstract doughnut: boolean
}
class AlphaStatic extends Static<{ love: true }> {
doughnut = true
}
abstract class Dynamic<C extends {[key: string]: any}> {
abstract static: Static<C>
}
class AlphaDynamic extends Dynamic<{ love: true }> {
static = AlphaStatic
}
我怎样才能解决这个问题?
'AlphaDynamic' 类型中的属性 'static' 不能分配给基本类型 'Dynamic<{ love: true; 中的相同属性。}>'。'typeof AlphaStatic' 类型中缺少属性'doughnut',但在'Static<{ love: true; 类型中是必需的 }>'.ts(2416) Untitled-2(2, 14): 'doughnut' 在这里声明。
解决方案
缺少“新”
abstract class Static<C extends {[key: string]: any}> {
abstract doughnut: boolean
}
class AlphaStatic extends Static<{ love: true }> {
doughnut = true
}
abstract class Dynamic<C extends {[key: string]: any}> {
abstract static: Static<C>
}
class AlphaDynamic extends Dynamic<{ love: true }> {
static = new AlphaStatic()
}