2017-06-22 23 views
2

この質問は先に質問されることがあります。しかし、彼らは私の問題を解決する助けにはなりませんでした。以下は私のサービスファイルです。ここでエラー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):

+0

変数の初期化を試しましたか?私はTypeScriptが生成されたJSではそれ以外を除外していると思う: 'public access_token:string = '';' – Arg0n

+0

本当ではない。コード内のどこにもそのプロパティへの参照がない場合は、TSまたは縮小によって取り除かれます。 –

+0

'userInfo'を' any'型にしてみましたか? 'let userInfo:any = this.cookieService.getObject( 'userInfo');' – Arg0n

答えて

-1

ただ、この行を変更します。

+0

'CookieService'は、返された値に' any'を使うのがよい場合の良い例です。特に彼(この場合)は、それを使って定義された型( 'access_token:string')を持つ変数をセットするだけです。そして、はい、私はそれが蒸散の間にエラーが発生したことに気づいた。それはまた私がかなり前にこのコメントを削除した理由です。 – Arg0n

+0

それぞれに新しい関数を書く必要がなく、クッキーを取得する一般的な機能を持つ方が便利です。また、変更なしに他のアプリケーションでも再利用できます。 – Arg0n

関連する問題