typescript - 泛型 - 从相同参数列表引用参数

时间:2015-03-22 21:01:41

标签: javascript generics typescript

有人可以解释为什么在打字稿中不允许以下内容吗?

interface Base<T> {
}

interface SomeInterface<First, Second extends Base<First>> {
}

出于某些原因我不明白,无法在First中引用Base<First>类型。

错误是:类型参数的约束不能引用同一参数列表中的任何类型参数。

1 个答案:

答案 0 :(得分:2)

根据wiki对0.9.7的突破性更改,引入这是为了减少开销:

  

相反,请使用不在同一参数中的约束参数   列表,使约束非泛型,或简单地传递'任何'作为   约束的参数。

     

原因:类型检查,错误报告,   并且设计复杂性没有增加足够的额外表现力   让它值得1.0。我们可能会在以后的版本中再次访问它   打字稿。

您的用例正好是文档中提到的两个用例之一。