Angular2动态访问此对象打字稿

时间:2017-01-23 14:53:59

标签: angular typescript

在Angular2打字稿组件中,我有以下局部变量

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

我想在像这样的函数中动态使用它们

doSomeStuff("teapot20")

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

所以在这个例子中我传递了局部变量“teapot20”的字符串名称,我想用这个字符串来操作名为teapot20的实际变量。

我可以这样做吗?

由于

1 个答案:

答案 0 :(得分:1)

您最好使用string literals而不只是字符串:

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

或者:

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

这样你可以确保没有人这样称呼它:

doSomeStuff("tepo10");