Typescript问题 - 当使用RouteParams时,我在尝试获取routeParams .id时遇到类型编译器错误

时间:2016-01-04 13:43:44

标签: typescript

我正在使用带有Angular 2的Typescript

问题我得到的是打字稿编译器错误。 实际代码有效。

这是我的代码:

constructor(_router: Router, _params:RouteParams){       
  this.router = _router; 

  if(_params.params.id != null){

      //This is where I get the error - when trying to get the id
      var email = _params.params.id;
  }
}

我实际上得到了param id。

typescript编译器不喜欢var的类型。

错误截图:

enter image description here

谢谢

2 个答案:

答案 0 :(得分:1)

RouteParams课程中没有此类属性id。您更愿意使用get方法:

var email = _params.get('id');

或者您更喜欢params词典:

var email = _params.params['id'];

顺便说一下,您可以尝试使用Visual Studio Code。它有相当不错的Intellisense,在这些情况下有所帮助。

答案 1 :(得分:0)

我试了一下,它对我没有任何错误。这是我试过的:

export class DetailsComponent {
  constructor(service:CompanyService, routeParams: RouteParams) {
    this.service = service;
    this.routeParams = routeParams;
    var idMethod1 = this.routeParams.params.id;
    var idMethod2 = this.routeParams.get('id'));
    (...)
  }
}

我对路线有这个配置:

@RouteConfig([
  { path: '/', component: ListComponent, name: 'Home', useAsDefault: true }
  { path: '/:id/:f', component: DetailsComponent, name: 'Details'}
])
export class AppComponent {
  (...)
}

以下是我的TypeScript编译器的版本:

$ tsc -v
message TS6029: Version 1.7.5

希望它可以帮到你, 亨利