2017-03-08 56 views
0

我與角2 & CLI一個項目,我試圖遍歷對象的數組,它會像如何將type添加到for typecript中定義的變量中?

for (let element of this.elements) { 

但是,它並不能編譯,因爲後來我需要訪問到其中一個元素的屬性。我想,我應該投&鍵入VAR元素明確地說,它是一個對象

因此,我試圖

for (let element : Object of this.elements) { 

但是,這是行不通的。

+0

該類型將成爲數組的類型。如果元素是字符串[],那麼元素的類型是字符串。 – toskv

+0

'element'的類型是從數組'this.elements'的類型繼承的, –

+0

這個問題到底是什麼'element'? console.log,看看它是否是你期望的。拋出的錯誤是什麼? – putonspectacles

回答

1

您不能在這種特定情況下使用的類型,元素的類型是從什麼this.elements的類型是繼承如下:

type TestType = { 
    hello: string; 
    world: number; 
} 

class Sample { 
    public elements: TestType[]; 

    constructor() { 
     for (let element of this.elements) { 
      // Element is of type TestType 
     } 
    } 
} 

你可以嘗試它的東西否則:

type TestType = { 
    hello: string; 
    world: number; 
} 

class Sample { 
    public elements: TestType[]; 

    constructor() { 
     for (let element of (this.elements as Object[])) { 
      // Element is now of type Object 
     } 
    } 
} 

相同的概念適用於接口。

相關問題