网站搜索

typescript - 一个可能包含任意元素,但肯定包含一些元素的数组


我想描述一种数组类型,例如,它允许任何字符串,但要求某些字符串存在,而不要求顺序。例如:

这“可行”,但强制要求元素的顺序:

type ArrayWithRequiredElements = ['foo', 'bar', ...string[]] | [...string[], 'foo', 'bar']

这不起作用:

type ArrayWithRequiredElements = [...string[], 'foo', 'bar' ...string[]]

错误:TS1265:一个剩余元素不能跟在另一个剩余元素之后

关于这个的潜在线索,但我不太清楚如何使用它:https://catchts.com/rest-tuples#duble_rest

这是可能的吗?并且它可以进一步扩展为一种类型,该类型允许任何元素,但要求包含多个特定元素,而不考虑任何元素的顺序吗?

答案#1

不确定这个,但你可以试试看

type NecessaryStrings = 'foo' | 'bar';

type ArrayWithRequiredElements = string[] & NecessaryString[];