我基本上想要一个类型,它说,你需要实现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]()
,并不起作用。
我将如何实现这样的目标?也许我错过了一些基本的理解。