2017-01-23 3 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

Вы имеете в виду 'this [teapot]'? – VadimB

+0

thats опечатка ... тот что я использовал но не работает – 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"); 
Смежные вопросы