この質問は先に質問されることがあります。しかし、彼らは私の問題を解決する助けにはなりませんでした。以下は私のサービスファイルです。ここでエラーTS2339:プロパティ 'access_token'が存在しません。角度2
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:'';
}
}
}
、私は、ユーザーを認証するためにクッキーからaccess_tokenはとaccess_tokenは変数にそれをダンプ取得しています。ユーザーがすでにログインしている場合は問題ありませんが、最初にnpm start
が実行されると、エラーが発生します。TS2339: 'access_token'プロパティが存在しません。明示的にコメントする必要がありますthis.access_token =(userInfo.access_token)?userInfo.access_token: '';この行は、npm startの後に動作します。私はまた変数を最初に定義しました。しかし、それでもエラーが発生します。私はどこに間違っているのか分からない。同じ問題に直面して解決した場合は、指導してください。活字体が返された値は、可能性が/何が含まれている知っているようにするために
let userInfo: any = this.cookieService.getObject('userInfo');
:これに
let userInfo = this.cookieService.getObject('userInfo');
(: any
):
変数の初期化を試しましたか?私はTypeScriptが生成されたJSではそれ以外を除外していると思う: 'public access_token:string = '';' – Arg0n
本当ではない。コード内のどこにもそのプロパティへの参照がない場合は、TSまたは縮小によって取り除かれます。 –
'userInfo'を' any'型にしてみましたか? 'let userInfo:any = this.cookieService.getObject( 'userInfo');' – Arg0n