2017-01-23 38 views
2

在Angular2打字稿成分,我有以下的局部變量Angular2動態地訪問該對象打字稿

teapot10: boolean = false; 
teapot20: boolean = false; 
teapot30: boolean = false; 

我想在一個函數因此,在這個例子中動態地使用這些像這樣

doSomeStuff("teapot20") 

doSomeStuff(teapot: string){ 
    this[teapot] = true 
} 

我傳遞局部變量「teapot20」的字符串名稱,我想用這個字符串來操縱實際的變量teapot20。

我可以這樣做嗎?

感謝

+4

刪除點,應該是:'這[茶壺]' –

+0

你是指'這[茶壺]'? – VadimB

+0

多數民衆贊成在一個錯字...多數民衆贊成在我用什麼,但不工作 – 72GM

回答

1

你最好使用string literals,而不是隻是一個字符串:

doSomeStuff(teapot: "teapot10" | "teapot20" | "teapot30") { 
    this[teapot] = true 
} 

或者:

type PropNames = "teapot10" | "teapot20" | "teapot30"; 
doSomeStuff(teapot: PropNames) { 
    this[teapot] = true 
} 

這種方式可以確保沒有一個調用它像這樣:

doSomeStuff("tepo10");