2017-09-14 75 views
-2

私はAngular 2の初心者です。私はビジュアルスタジオでコーディングすることでチュートリアルを試していました。 npm、nodejs、angular/cliをインストールしました。私はtypescriptです上のVisual Studioのコードにいくつかの例を挙げて走っていたとして、私は「この」エラー:(typescript)予期しないトークン。コンストラクタ、メソッド、アクセサ、またはプロパティが予期されました

picture of the code

私はjavascriptの言葉を使用する場合のみに発生するエラー「この」、他のJavaScript言葉にしようとしたとき、私はエラーが発生しましたそれよりも、それはエラーがありません。これに対する解決策はありますか?ありがとうございました。

import { Component, OnInit } from '@angular/core'; 

@Component({ 
    selector: 'app-user', 
    templateUrl: './user.component.html', 
    styleUrls: ['./user.component.css'] 
}) 
export class UserComponent implements OnInit { 
    name:string = 'John Doe'; 
    age:number = 50; 
    email:string = '[email protected]'; 
    address: { 
    street:string, 
    city:string, 
    postalcode:number 
    } 

    constructor() { 
    console.log('constructor . .. '); 
    } 

    ngOnInit() { 
    console.log('ngonit . . . '); 
    } 
    public.address = { 
    street:'adsadsasd', 
    city: 'asdsad', 
    postalcode: 123132 
    } 

} 
+1

画像ではなく、コードをインラインで掲載してください。 –

+2

ポスト**コード**、ない*写真の*コードの。詳細:http://meta.stackoverflow.com/q/285551/157247 –

+0

コードからthis.addressを削除してください。これはクラスの関数、intialize、public address:{city:string、postalCode:string } = {city: 'Vegas'、postalCode: '12345'}または、ngOnInit()内で使用することができます –

答えて

1

ngOnInitファンクションにラップできます。

別のクラスでモデルを作成することをお勧めします。

component.tsで初期化してください。

address:AddressModel= new AddressModel(); 
0

The error only occurs when I use the javascript word 'this', other than that, it doesnt have error. Any solution for this? Thank you.

それを使用しないでください。 TypeScriptでは、次のようにメンバーを書くことをお勧めします。

public address: {...} = {...}; 

ここで、publicは省略可能です。

例えば、あなたのクラスであなたが持っている可能性があり:あなたが関数内でthis.address={..}をラップする必要があります

public address: { 
    street:string, 
    city:string, 
    postalcode:number 
} = { 
    street:'adsadsasd', 
    city: 'asdsad', 
    postalcode: 123132 
} 
+0

私は、なぜthisを使用するのがtypescriptにエラーを持つのだろうかと興味があります。なぜなら、typescriptはjavascriptのスーパーセットだからです。 – DevJo

+0

です。 'class a {this.x = 14}'はJavaScriptで同じエラーを返します。 – lilezek

+0

@DevJo、コードを関数にラップする必要があります。 –

0
import { Component, OnInit } from '@angular/core'; 

@Component({ 
    selector: 'app-user', 
    templateUrl: './user.component.html', 
    styleUrls: ['./user.component.css'] 
}) 
export class UserComponent implements OnInit { 
    name:string = 'John Doe'; 
    age:number = 50; 
    email:string = '[email protected]'; 
    address: { 
    street:string, 
    city:string, 
    postalcode:number 
    } 

    constructor() { 
    console.log('constructor . .. '); 
    } 

    ngOnInit() { 
    console.log('ngonit . . . '); 
    this.address = { 
     street:'Chicago', 
     city: 'America', 
     postalcode: 123132 
    }; 
    } 
} 

このコードは、私のために動作します。 ngOnIt()関数の中でthis.addressを折り返して変更しました。みんなありがとう。

関連する問題