2016-01-04 2 views
0

Я использую машинопись с угловой 2Машинопись проблемы - При использовании RouteParams я получаю ошибку компиляции типа при попытке получить routeParams .id

Проблемой Я получаю сообщение об ошибке машинописного компилятора. Фактический код работает.

Вот мой код:

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; 
    } 
} 

Я на самом деле получить штраф пары ID.

Компилятор машинописного текста просто не нравится тип var.

Ошибка Снимок экрана:

enter image description here

Спасибо

+0

Не могли бы вы дать нам точную ошибку? Благодаря! –

+0

Добавлено изображение ошибки – AngularM

+0

какая версия tsc вы используете? –

ответ

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 { 
    (...) 
} 

Вот версия моей машинописи компилятора:

$ tsc -v 
message TS6029: Version 1.7.5 

Надеется, что это помогает вам, Thierry

+0

Спасибо. Я использовал _params.get ('id'); и, похоже, он исправил ошибку компилятора типа. – AngularM

+1

Ну ладно. Я видел '_params.params.id' в коде, который вы указали в своем вопросе ;-) BTW рад услышать, что вы исправили свою проблему ;-) –

1

Там нет такого свойства id на RouteParams класса. Вы предпочли бы использовать get метод:

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

или, если вы предпочитаете params словарь:

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

Кстати, вы можете попробовать использовать Visual Studio Code. У этого есть довольно приличный Intellisense, который помогает в этих ситуациях.

Смежные вопросы