[英]Generic constraint of the same type
我有这个课:
class Container {
parent: any;
children: any[];
}
我想删除“任何”类型,可以使用泛型来完成。 我的问题是,“ any”类型也与“ Container”类型不同,这将需要再次指定泛型类型。
class Container<P extends Container<?>, C extends Container<?>> {
parent: P;
children: C[];
}
如何判断约束是相同的类类型?
我不知道您的用例到底是什么样子,但是这个简单的类如何呢?
class Container<T> {
parent: Container<T>;
children: Container<T>[];
}
我认为在这里说P extends Container<any,any>
和C extends Container<any,any>
就足够了:
class Container<P extends Container<any,any>,C extends Container<any,any> >{
parent: P;
children: C[];
}
class Parent extends Container<Parent,Child> {
name: string;
}
class Child extends Container<Parent, Child> {
childname: string;
}
const root = new Parent();
root.parent;
root.children[0].parent;
root.name;
root.children[0].childname;
在此,编辑器中的语法检查可以正确计算出最后所有值的类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.