読者です 読者をやめる 読者になる 読者になる

angular2 Attempted to assign to readonly property.

angular

Component.tsと同じファイル内に、
inferfaiceを定義して、Componentのコンストラクタで値を設定しようとしたら、エラーになった。

EXCEPTION: Error during instantiation of AppComponent!. TypeError: Attempted to assign to readonly property.

エラー。

export class AppComponent {
  public appStatus: AppStatus;
  title = 'Tour of Heroes';
  constructor() {
      this.appStatus.isLogin = false;
  }
}

export interface AppStatus {
    isLogin: boolean;
    aaa: string;
}

エラー(その2)。

export class AppComponent implements OnInit{
  public appStatus: AppStatus;
  title = 'Tour of Heroes';
  
  ngOnInit() {
    this.appStatus.isLogin = false;
    this.appStatus.aaa = "bbb";
  }
}

export interface AppStatus {
    isLogin: boolean;
    aaa: string;
}

エラーにならない。

export class AppComponent {
  public appStatus: AppStatus = { isLogin: false, aaa: "bbb" };
  title = 'Tour of Heroes';  
}

export interface AppStatus {
    isLogin: boolean;
    aaa: string;
}

http://stackoverflow.com/questions/23412033/typescript-interface-initialization