有没有办法在基础类型中生成两个泛型类型,还可以使其中一个包含第二个泛型类型?
这是我的代码:
interface ITreeNode extends IBaseNode{
}
interface IBaseTree<T extends IBaseNode> {
nodeType: T
}
interface IBaseForest <T extends IBaseTree<T2 extends IBaseNode>> {
treeType: T
nodeType: T2
}
问题是'T2扩展IBaseNode',我真的不能设置另一种类型,理论上我不需要,因为baseTree知道他的节点的类型,我不能让森林了解谁是这个节点。< / p>
如果我不能理解,我很抱歉,谢谢你的任何回复。
答案 0 :(得分:1)
我简化了一下。
IBaseNode
,因为它没有被声明,与我们的问题无关。将ITreeNode
视为您的基本节点K,V
)。这里的意图是Node
:N
和Tree
:T
以下是我想要的想法:
interface ITreeNode{}
interface IBaseTree<N extends ITreeNode> {
nodeType: N;
}
interface IBaseForest<N extends ITreeNode,T> {
treeType: T;
nodeType: N;
}
但是,如果你想基于T
禁止N
,那么由于下面的限制,你也不能使用{{1}}:
根据规格。