【发布时间】:2021-07-16 18:02:05
【问题描述】:
我如何为 typescript 数组中的特定项目编写需求?例如,让我们考虑“至少有一个数字七的数字数组”。似乎要求特定元素为 7 很容易,但要求“其中一个元素”更难。
我尝试了以下方法。但是,它会产生Type alias 'ContainsSeven' circularly references itself. ts(2456) 错误。
type ContainsSeven =
|[7, ...Array<number>]
|[number, ...ContainsSeven]
const example1: ContainsSeven = [1,2,7]
const example2: ContainsSeven = [1,7,2]
const example3: ContainsSeven = [7,1,2]
// @ts-expect-error
const counter1: ContainsSeven = []
// @ts-expect-error
const counter2: ContainsSeven = [1,2,3]
我的最终目标是使用标准 JavaScript 数组而不是自定义链接结构来实现生成器的惰性连接。有关更全面的示例,请参阅 related diff。
【问题讨论】:
标签: typescript