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[];
