首页 > 解决方案 > Typescript 可以确保数组具有重复的类型模式吗?例如 [string, number, string, number, ....(forever)]

问题描述

我有一个函数,我想确保它接受一个字符串,后跟一个数字。并且可选地,更多的字符串数字对。所以就像一个元组,但“无限”次:

const fn = (...args: [string, number] |
[string, number, string, number] |
[string, number, string, number, string, number] |
[string, number, string, number, string, number, string, number] | ...etc etc) => {}

等等

另一种伪类型构造:

type Pair = [string, number, ...Pair];

TypeScript 可以做到这一点吗?

编辑这看起来应该工作,但没有。TypeScript 似乎无法正确推断出对的顺序。

type Pair = [string, number, ...Pair[]];

标签: typescript

解决方案


我相信是这样。您将类型定义为

type RecurringTuple = [string, number, RecurringTuple[]];
const fn = (...args: RecurringTuple) => {}

没有测试,但是在这个链接中发现了一个类似的案例。


推荐阅读