在类型化数组

时间:2017-09-25 03:57:34

标签: javascript typescript

如果重要的话我会使用Typescript~2.4。

我有一个变为{} | {}[] | string[]的变量。我检查它是否是一个数组,并想迭代它。我认为forEach是最好的:

(<{}[] | string[]>data).forEach((val) => {
    this.options.push(setupValue(val));
});

但它说Cannot invoke an expression whose type lacks a call signature.我无法看到我哪里出错了。我无法判断这是否与我使用Typescript或我自己的逻辑有关?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您有一组空对象({})或字符串。如果您接受处理两者的数组,则TypeScript编译器允许您编写:

(<({} | string)[]>data).forEach(val => {
    //...
});