【发布时间】:2021-02-23 16:19:21
【问题描述】:
我有一个 API(弹性搜索批量 API),它接受一组操作,这些操作基本上是对,其中第一个元素是指定操作(索引、更新、创建、删除)的对象,第二个是数据(不是在删除的情况下)。
单个操作可以输入为(简化):
type BulkUpdate = [{ update: { _index: string, _id: string } }, { doc: object }];
type BulkIndex = [{ index: { _index: string, _id?: string } }, object];
type BulkDelete = [{ delete: { _index: string, _id: string } }];
type BulkOperation = BulkUpdate | BulkIndex | BulkDelete;
然后,整个参数是上述元组的扁平数组 - 操作列表和可选数据。
如何在 Typescript 中为这种类型建模?它不是元组,因为它具有不确定的长度,也不是数组,因为元素类型取决于它们的索引(例如,除了 BulkDelete,偶数索引包含“操作”,而奇数索引包含“操作数”)。
【问题讨论】:
标签: arrays typescript elasticsearch tuples