Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PhpStorm角度订阅-未解析变量_Javascript_Angularjs_Angular_Phpstorm - Fatal编程技术网

Javascript PhpStorm角度订阅-未解析变量

Javascript PhpStorm角度订阅-未解析变量,javascript,angularjs,angular,phpstorm,Javascript,Angularjs,Angular,Phpstorm,我正在使用PhpStorm开发一个Angular应用程序,我在 粘虫 以下是代码行: this.route.params.subscribe((params: Params) => { const avalancheid = params.myid; }); 如果我将类型更改为“any”而不是“Params” 角度版本:4.2.4,PhpStorm版本:2017.2.4 您没有从@angular/router导入参数: 像这样: import {

我正在使用PhpStorm开发一个Angular应用程序,我在

粘虫

以下是代码行:

 this.route.params.subscribe((params: Params) => {
          const avalancheid = params.myid;
          });
如果我将类型更改为“any”而不是“Params”


角度版本:4.2.4,PhpStorm版本:2017.2.4

  • 您没有从
    @angular/router
    导入
    参数
  • 像这样:

    import {Params} from "@angular/router";
    
    您需要此
    Params
    类型,因为它定义为
    [键:字符串]:any
    ,允许使用点符号在对象中导航

  • 错误的打字脚本版本:
  • 虽然
    TypeScript
    ,但这种“允许”使用dot-nation是一个相对较新的特性。因此,另一个问题可能是您使用的是旧版本的TypeScript。尝试至少更新到版本
    2.4.x
    ,以便能够使用此功能。看看是否可以更新到最新的角度版本。这是值得的

    如果您不愿意更新,即使我强烈建议您这样做,您也可以使用其他符号访问该属性:

    this.route.params.subscribe((params: Params) => {
      const avalancheid = params['myid'];
    });
    

    这里可能有两个问题

  • 您没有从
    @angular/router
    导入
    参数
  • 像这样:

    import {Params} from "@angular/router";
    
    您需要此
    Params
    类型,因为它定义为
    [键:字符串]:any
    ,允许使用点符号在对象中导航

  • 错误的打字脚本版本:
  • 虽然
    TypeScript
    ,但这种“允许”使用dot-nation是一个相对较新的特性。因此,另一个问题可能是您使用的是旧版本的TypeScript。尝试至少更新到版本
    2.4.x
    ,以便能够使用此功能。看看是否可以更新到最新的角度版本。这是值得的

    如果您不愿意更新,即使我强烈建议您这样做,您也可以使用其他符号访问该属性:

    this.route.params.subscribe((params: Params) => {
      const avalancheid = params['myid'];
    });
    

    这是因为您的
    Params
    类不包含键
    myid
    ,通过使用方括号
    Params['myid']
    ,您应该能够获得如下所示的值


    它崩溃的原因是因为您告诉TypeScript编译器“嘿,我希望
    Params
    ”,此时您继续告诉它获取名为
    myid
    的属性,而原始
    Params
    类不包含该属性,因此出现了错误。

    这是因为您的
    Params
    类不包含键
    myid
    ,通过使用方括号
    Params['myid']
    ,您应该能够获得中所示的值


    它崩溃的原因是因为你告诉TypeScript编译器“嘿,我在期待
    Params
    ”,然后你继续告诉它获取一个名为
    myid
    的属性,而原始
    Params
    类不包含该属性,因此出现了错误。

    我通常不会对某人的答案发表评论,很抱歉听起来很粗鲁,但是您可以使用
    符号来导航类似
    参数
    的类型,因为它不是
    ,而是
    类型
    。当您尝试链接到“文档”时,请使用官方文档。您可以看到一个使用params
    dot
    的示例。您所指的版本仍然在angular2上,即使版本5已发布。:)我通常不会对某人的回答发表评论,很抱歉听起来很粗鲁,但您可以使用
    符号来导航类似
    参数
    的类型,因为它不是
    ,而是
    类型
    。当您尝试链接到“文档”时,请使用官方文档。您可以看到一个使用params
    dot
    的示例。您所指的版本仍然在angular2上,即使版本5已发布。:)谢谢你的快速回答!对不起,我忘了写参数已导入,我将更新typescript!谢谢你的快速回答!对不起,我忘了写参数已导入,我将更新typescript!