【发布时间】:2021-03-30 01:30:09
【问题描述】:
是否可以在 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>]”才能完成这项工作?这甚至可能吗?
谢谢!
【问题讨论】:
-
我倾向于将其作为this question 的副本关闭,但这里的问题不够具体,我无法说出发生了什么。您的示例
B是一个带有未使用类型参数的空类,因此不可能有任何接受的代码。比如B<string, number>,同时拒绝B<boolean, number>,因为它们是等于{}的相同类型。 `.请考虑修改代码以构成minimal reproducible example,可以将其放入独立的IDE中向其他人展示问题。
标签: arrays typescript generics types