2017-09-25 110 views
1

如果有問題,我正在使用Typescript〜2.4。在類型陣列上使用forEach時遇到問題

我有一個變量,被鑄造爲{} | {}[] | string[]。我做了一個檢查,當它是一個數組,並且想要迭代它時。我想通forEach是最好的對:

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

但它說Cannot invoke an expression whose type lacks a call signature.我不能看到我錯在哪裏。我不知道這是如何使用Typescript或我自己的邏輯的問題?

+1

有趣的是,'(<{}[]>數據).forEach'和'(數據).forEach'的罰款。 – cartant

+0

或許這是Typescript的錯誤?或者似乎是有意的行爲? – RhoVisions

+1

對我來說看起來越野車,但其他人可能更多地瞭解具體情況。 – cartant

回答

1

你得空的對象({})或字符串數​​組。如果接受,處理雙方的數組,打字稿編譯器可以讓你寫:

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

是的,這是似乎工作的解決方法,雖然它不是我輸入的準確表示。 – RhoVisions