这个问题可能会在早些时候提出。但他们没有帮助我解决我的问题。以下是我的服务文件。
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开始工作之后。我最初也定义了变量。但是,它仍会产生错误。我没有得到我做错的地方。如果您遇到同样的问题并请解决,请指导。
答案 0 :(得分:-1)
只需更改此行:
let userInfo = this.cookieService.getObject('userInfo');
到此(: any
):
let userInfo: any = this.cookieService.getObject('userInfo');
为了让TypeScript知道返回的值可能是/包含任何内容。