自定义Iterable类型

时间:2017-09-25 16:18:25

标签: typescript

我基本上想要一个类型,它说,你需要实现symbol.iterator,而对象的其余部分可以是或不能是一些字符串:值条目。

我试图做这样的事情

interface MyIterable<T> {
    [index: string]: T
    [Symbol.iterator](): Iterator<T>;
}

我的想法是,这会产生一种类型的&#39;这将允许我这样的事情:

const test: MyIterable<number> = {
  'string': 1,
  'string2': 2,
  // and more 'string': number entries
  [Symbol.iterator]: function* (): Iterator<number> {
    for (const key of Object.keys(this)) {
      yield this[key]
    }
  }

这不起作用。同时拥有[index: string][Symbol.iterator](),并不起作用。 我将如何实现这样的目标?也许我错过了一些基本的理解。

0 个答案:

没有答案