【发布时间】:2020-09-12 10:23:07
【问题描述】:
我正在尝试使用类似于Array.flat() 的方法扩展IterableIterator。自己写方法没问题,扩展IterableIterator的接口也很简单。所以javascript部分是受控的。不幸的是,我无法让 typescript 编译器理解我想要什么。
我应该如何在 IterableIterator 中声明 Flatten 以便打字稿将项目理解为 number 而不是像现在这样的 number[]?
注意:如果我用if(item instanceof number) {} 包装total+=item,则该方法有效。只是为了完成,该方法目前看起来像这样:
function* iterable_flatten<T>(this: Iterable<T[]>): Generator<T> {
for (let item of this) {
for (let itemitem of item)
yield itemitem;
}
}
【问题讨论】:
-
如何扩展IterableIterator?你能解释一下如何在原型上定义 iterable_flatten 方法吗?我找不到这样做的方法。
-
也许您可以为此创建一个新问题。 cmets 真的不太适合用代码示例和进一步的 cmets 回答其他问题
-
你说得对,我又创建了一个线程:stackoverflow.com/questions/66843182/…
标签: arrays typescript generics