有人可以解释为什么在打字稿中不允许以下内容吗?
interface Base<T> {
}
interface SomeInterface<First, Second extends Base<First>> {
}
出于某些原因我不明白,无法在First
中引用Base<First>
类型。
错误是:类型参数的约束不能引用同一参数列表中的任何类型参数。
答案 0 :(得分:2)
根据wiki对0.9.7的突破性更改,引入这是为了减少开销:
相反,请使用不在同一参数中的约束参数 列表,使约束非泛型,或简单地传递'任何'作为 约束的参数。
原因:类型检查,错误报告, 并且设计复杂性没有增加足够的额外表现力 让它值得1.0。我们可能会在以后的版本中再次访问它 打字稿。
您的用例正好是文档中提到的两个用例之一。