错误TS2339:属性'access_token'不存在角度2

时间:2017-06-22 08:11:45

标签: javascript angular typescript

这个问题可能会在早些时候提出。但他们没有帮助我解决我的问题。以下是我的服务文件。

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { CookieService } from 'angular2-cookie/core';
import { AppSettings } from '../app.settings';
import { Ticket } from '../_models/index';

@Injectable()
export class TicketService {
    options= new RequestOptions();
    public access_token:string;
    constructor(
        private http: Http,
        private cookieService: CookieService
    ) {
        let headers = new Headers();
        headers.append('Content-Type', 'application/json');
        headers.append('Accept', 'application/json');
        this.options = new RequestOptions({ headers: headers });
        let userInfo = this.cookieService.getObject('userInfo');
        if(userInfo){
            //this.access_token = (userInfo.access_token)?userInfo.access_token:'';
        }
    }
}

在这里,我从cookie获取access_token以验证用户并将其转储到access_token变量中。如果用户已经登录,则工作正常。但是第一次执行npm start时,会生成错误错误TS2339:属性'access_token'不存在。所以明确需要注释 this.access_token =(userInfo.access_token)?userInfo.access_token:''; 这一行然后在npm开始工作之后。我最初也定义了变量。但是,它仍会产生错误。我没有得到我做错的地方。如果您遇到同样的问题并请解决,请指导。

1 个答案:

答案 0 :(得分:-1)

只需更改此行:

let userInfo = this.cookieService.getObject('userInfo');

到此(: any):

let userInfo: any = this.cookieService.getObject('userInfo');

为了让TypeScript知道返回的值可能是/包含任何内容。