Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 使用嵌套泛型扩展泛型类_Oop_Typescript_Generics_Nested Generics - Fatal编程技术网

Oop 使用嵌套泛型扩展泛型类

Oop 使用嵌套泛型扩展泛型类,oop,typescript,generics,nested-generics,Oop,Typescript,Generics,Nested Generics,typescript中有没有一种方法可以这样扩展类: class ChildClass<Wrapper<A>> extends SuperClass<A> class-ChildClass在扩展之前编写ChildClass是没有意义的,因为这里声明了泛型类型参数。这意味着您可以给他们一个名称,如果需要,还可以给他们一个约束(例如ChildClass)。在此上下文中,Wrapper是什么意思?编译器无法理解它 绝对可能的是在扩展的另一端使用包装器,因为中的不是

typescript中有没有一种方法可以这样扩展类:

class ChildClass<Wrapper<A>> extends SuperClass<A>

class-ChildClass在扩展之前编写
ChildClass
是没有意义的,因为这里声明了泛型类型参数。这意味着您可以给他们一个名称,如果需要,还可以给他们一个约束(例如
ChildClass
)。在此上下文中,
Wrapper
是什么意思?编译器无法理解它

绝对可能的是在扩展的另一端使用
包装器
,因为
中的
不是一个(正式的)类型参数,而是一个类型参数。这意味着您正在使用先前定义的类型参数,并且可以使用它生成新类型

因此,根据您实际想要做的事情,您有两个选择:

A
可分配给
Wrapper

如果要确保
A
包装器
或派生类,请使用泛型约束:

class ChildClass<A extends Wrapper> extends SuperClass<A>

是的,
Wrapper
本身是一个泛型类,
a
它的参数。。。我试了一个错误的方法,但是现在我看到了这样的情况,它实际上是有意义的
class ChildClass
A
可以分配给
Wrapper
@jcalz,我已经从我的答案中删除了这一部分。
class ChildClass<A> extends SuperClass<Wrapper<A>>