【发布时间】:2022-01-23 08:40:47
【问题描述】:
我正在尝试使用 Angular 13 中的类型索引访问变量,但遇到 TS7053 错误。 This stackblitz 准确地显示了我正在做的事情,但是它在那里工作得非常好,没有错误。
export class AppComponent {
name = 'Angular ' + VERSION.major;
Prop01 : boolean = false;
Prop02 : boolean = false;
Prop03 : boolean = false;
private setProp(prop: string, value: boolean): void {
this[prop] = value; // this works in the Stackblitz but not in my project
}
}
唯一的区别是我使用的是 V13,而 stackblitz 仍然使用 V12。我查看了我的 VS Code 扩展,发现 Ts Lint 被 Es Lint 弃用,所以我禁用它并重新启动 VS Code,但 this[prop] 仍然抛出一个错误,提示
元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“MyComponent”。 在“MyComponent”类型上找不到带有“字符串”类型参数的索引签名。
我在旧版本的 Angular 中做过这个,所以我不明白是什么让它突然不起作用,有人知道这是为什么吗?
【问题讨论】:
标签: angular typescript