在angular2 typescript组件中,我有以下局部变量

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

我想在这样的函数中动态地使用这些
doSomeStuff("teapot20")

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

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

最佳答案

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

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

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

这样你就可以确保没有人这样称呼它:
doSomeStuff("tepo10");

关于angular - Angular2动态访问此对象 typescript ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41809190/

10-11 13:04