typescript - 为剩余参数中的重复交替类型定义 TypeScript 类型
问题描述
我想在打字稿中定义一个可以传递任意数量的泛型类型的类型。然后,此类型应定义,如果应用于休息参数,它允许函数接收多个提供类型的参数。一个示例如下所示:
function single(...args: HeterogeneousRest<number>) {...}
// works
single();
single(1);
single(1, 2, 1, 3, 4);
// does not work
single(1, "foobar")
function double(...args: HeterogeneousRest<number, string>) {...}
// works
double();
double(1, 'foobar');
double(1, 'foobar', 2, 'bazbar');
// does not work
double(1);
double(1, 'foobar', 2);
double('foobar', 2);
在第二个函数的情况下,double
将允许按此顺序重复,number
然后重复string
任意次数,范围从 0 到无穷大。那么允许的参数数量当然是 2 的倍数。
如果定义了三个泛型类型当然是三个的倍数等等。
BTW 类型不必具有此签名。如果无法使用任意数量的类型参数定义类型,我不会挂断电话。将类型用作:
HeterogeneousRest<[number, string, boolean]>
HeterogeneousRest<number, HeterogeneousRest<string, HeterogeneousRest<boolean>>>
...
只要满足条件,任何工作都可以。
在有人责怪我之前,因为已经有一篇文章准确地描述了我正在寻找的东西,我花了两天时间用不同的搜索查询在谷歌上搜索它,并尝试自己构建它,但没有成功。唯一可以在重载的地方工作,但我想用元编程来解决这个问题,因为具体的例子可能有很多参数。
我希望我的解释是有道理的。先感谢您。
解决方案
推荐阅读
- visual-studio-code - vscode remote-ssg:服务器状态检查失败 - 等待并重试
- python - 增加已用内存时 Chrome 浏览器崩溃
- java - 无法打开 Web 服务测试器页面
- javascript - 使用 .serializeArray() Javascript 时如何自定义键值对?
- c - 我在文本文件中有两行数据。我必须从文本文件中读取这两行数据并将其存储在两个不同的数组中
- c# - 如何从上一页的文本框中获取变量到下一页?
- c - 有人可以帮我说说为什么我会因为 main.exe 不存在而收到此错误吗?
- java - 是否有 c++ 版本的 int..args
- android - 使用 Firebase 实时数据库存储 int
- android - 如何在数据绑定中使用自定义的onClick?