角类不起作用

时间:2018-07-14 23:01:16

标签: angular typescript

我正在尝试使用Angular中的类使我的生活更轻松,但到目前为止,它尚无法正常工作。以下是我的代码和收到的错误:

import { WizardData } from '../models/wizard-data';

export class WizardPage {
    private type: String;
    private data: WizardData;

    public getType(){
        return this.type;
    }

    public setType(type: String){
        this.type = type;
    }

    public getData(){
        return this.data;
    }

    public setData(data: WizardData){
        this.data = data;
    }
}

import { Component, OnInit } from '@angular/core';
import { WizardPage } from '../../shared/models/wizard-page';

@Component({
  selector: 'app-wizard-base',
  templateUrl: './wizard-base.component.html',
  styleUrls: ['./wizard-base.component.scss']
})

export class WizardBaseComponent implements OnInit {
  wizardPage: WizardPage = new WizardPage();
  wizardPage.setType("address");

  constructor() { }

  ngOnInit() {}

}

这在行上给出了错误

wizardPage.setType("address");

即(CLI):

ERROR in src/app/wizard/wizard-base/wizard-base.component.ts(14,13): error TS1005: ';' expected.
src/app/wizard/wizard-base/wizard-base.component.ts(14,22): error TS1003: Identifier expected.

在Visual Studio代码中:

[ts] Duplicate identifier 'wizardPage'.
[ts] Subsequent property declarations must have the same type.  Property 'wizardPage' must be of type 'WizardPage', but here has type 'any'.
(property) WizardBaseComponent.wizardPage: WizardPage

有人知道为什么这不起作用吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以直接在类中声明类的成员,但不能直接访问它们。基本上,您可以在类的任何方法内部访问变量,并且该变量将属于this(上下文)。在这里,您应该调用ngOnit生命周期挂钩。

ngOnInit() {
   this.wizardPage.setType("address");
}

在指定子类或继承类中变量的可访问性方面,可以使用访问说明符,可以是publicprotectedprivate。这些访问说明符的工作方式类似于它们在OOPC#Java语言中的使用方式。感谢@Florian的评论。