2013-03-25 47 views
1

只是爲了好玩,我決定看看TypeScript。typescript:untyped array

我有一個問題(到目前爲止);給出下面的打字稿代碼...

class EP { 

    id: number; 
    TY: string; 

    constructor(id: number, ty: string) { 
    this.id = id; 
    this.TY = ty; 
    } 

} 

和下面的打字稿代碼...

var ep = new EP(1, "Yes"); 
var x = [ep.id, ep.TY]; 

的JavaScript會認爲這是有效的,但是打字稿是「在陣列文字表達式類型不兼容」的抱怨。我應該如何註釋「x」以清除此錯誤?

對於那些有興趣的人,我需要創建數組來傳遞值到SQLite。

此外,使用這種作爲參數傳遞給一個函數調用,什麼時候會是相同的語法,如SQLite的INSERT ...

db.transaction.executeSql("...", [ep.id, ep.TY], ...); 

感謝。

回答

5

嘗試any[]您的數組的類型。

+0

您可否詳細說明;我認爲這是類似的東西,但似乎無法找到語法。根據操場,任何[ep.id,ep.TY]顯然都是不正確的。 – 2013-03-25 18:21:30

+1

'var x:any [] = [ep.id,ep.TY];' – Jacob 2013-03-25 18:22:25

+1

[Playground link](http://www.typescriptlang.org/Playground/#src=class%20EP%20%7B%0A %0A%20%20id%3A%20number%3B%0A%20%20TY%3A%20string%3B%0A%0A%20%20constructor(ID%3A%20number%2C%20ty%3A%20string)%20% 7B%0A%20%20%20%20this.id%20%3D%20id%3B%0A%20%20%20%20this.TY%20%3D%20ty%3B%0A%20%20%7D% 0A%0A%7D%0A%0Avar%20EP%20%3D%20new%20EP(1%2C%20%22Yes%22)%3B%0Avar%20X%20%3A%20any%5B%5D%20%3D %20%5Bep.id%2C%20ep.TY%5D%3B%0A) – 2013-03-25 18:24:34