【发布时间】:2021-03-26 03:48:11
【问题描述】:
我正在使用这些双重抽象类,并且我试图要求第二个抽象类具有另一个抽象类的属性。但它失败了。
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”类型中的属性“静态”不能分配给基类型“动态”中的相同属性'。 'typeof AlphaStatic' 类型中缺少属性'doughnut',但在'Static'.ts(2416) Untitled-2(2, 14): 'doughnut' 在这里声明。
【问题讨论】:
-
您的意思是
static: AlphaStatic?截至目前,您正在为static分配 值AlphaStatic,而不是其中的一个实例。 -
是的,我想我想要新的 AlphaStatic()
-
如果你希望属性的值实际上是一个类,而不是一个实例,那么类型应该是
new (...args: any[]) => Static<C>。 -
@kaya3 很高兴知道可能想要那个
-
abstract doughnut: boolean-- 抽象数据属性的含义是什么?
标签: typescript