错误:(typescript)意外的令牌。期望构造函数,方法,访问器或属性

时间:2017-09-14 10:16:52

标签: javascript angular typescript

我是Angular 2的初学者。我在visual studio中通过编码尝试了一些教程。我安装了npm,nodejs和angular / cli。当我在关于打字稿的视觉工作室代码上运行一些例子时,我在尝试使用javascript单词时遇到错误'这个'

picture of the code

只有当我使用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 = 'someone@example.com';
  address: {
    street:string,
    city:string,
    postalcode:number
  }

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

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

}

3 个答案:

答案 0 :(得分:1)

你应该将this.address={..}包裹在一个函数中。

您可以将其包装到ngOnInit函数中。

我建议你在一个单独的类中创建一个模型。

export class AddressModel{
     constructor(public street:string='', public city:string='', public postalcode:number=0);
}

并在component.ts

中对其进行初始化
address:AddressModel= new AddressModel();

答案 1 :(得分:0)

  

只有当我使用javascript字时才会出现错误'此'除此之外,它没有错误。对此有何解决方案?谢谢。

不要使用它。在TypeScript中,我们鼓励您以这种方式编写成员:

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

public是可选的。

例如,在您的课程中,您可以:

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

答案 2 :(得分: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 = 'someone@example.com';
  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来改变。谢谢你们。