在TypeScript中,是否可以实现一个无限的数组(不是元组),其类型依赖于数组前一个元素?
以下是一些伪TypeScript代码,以示例说明:
class B<T, U> {}
function foo<X, Y>(...args: [B<X, Z0>, B<Z0, Z1>, B<Z1, Z2>, ..., B<ZN, Y>]) {}
foo<string, number>(new B<string, number>, new B<number, boolean>, new B<boolean, number>); // Correct
foo<string, number>(new B<string, number, new B<number, boolean>); // Incorrect
foo<string, number>(new B<string, number>, new B<boolean, number>); // Incorrect
我应该用什么替换 "[B<X, Z0>, B<Z0, Z1>, B<Z1, Z2>, ..., B<ZN, Y>]
" 才能让这个工作?这是可行的吗?
谢谢!
B
是一个未使用类型参数的空类,因此不可能有任何接受B<string, number>
而拒绝B<boolean, number>
的代码,因为它们是相同类型,等于{}
。请考虑修改代码,以构成一个[mcve],可以将其放入独立的IDE中,以向他人演示问题。 - jcalz