我正在使用PhpStorm开发一个Angular应用程序,我在
上有一个"未解决的变量" 错误params.myid
以下是代码行:
this.route.params.subscribe((params: Params) => {
const avalancheid = params.myid;
});
如果我将类型更改为"任何" 而不是" Params"
,则没有错误 this.route.params.subscribe((params: any) => {
const avalancheid = params.myid;
});
Angular版本:4.2.4,PhpStorm版本:2017.2.4
答案 0 :(得分:2)
这是因为您的Params
类不包含键myid
,使用方括号params['myid']
,您应该能够获得docs中显示的值
它崩溃的原因是因为你告诉TypeScript编译器“嘿,我期待Params
”,然后你继续告诉它获取一个名为myid
的属性原始Params
类不包含,因此错误。
答案 1 :(得分:1)
这里可能有两个问题。
Params
@angular/router
醇>
像这样:
import {Params} from "@angular/router";
您需要此Params
类型,因为它定义为[key: string]: any
,允许使用点表示法在对象中导航。
这允许'使用点国家是TypeScript
的一个相对较新的功能。所以另一个问题可能是你使用的是旧版本的TypeScript。尝试更新至少版本2.4.x
,以便能够使用此功能,并在您使用此功能时。看看你是否也可以更新到最新的角度版本。这是值得的。
如果您不愿意更新,即使我强烈建议您这样做,您也可以使用其他符号来访问该物业:
this.route.params.subscribe((params: Params) => {
const avalancheid = params['myid'];
});