Angular2类的方法无法识别

时间:2017-09-10 18:11:29

标签: angular class typescript

我在Angular2中有以下类:

export class MyClass{

constructor(private a: string, private b: string, private c: string){}

    public getA(): string {
        return this.a;
    }

    public getB(): string {
        return this.b;
    }

    public getC(): string{
        return this.c;
    }

然后我在另一个组件中使用此对象:

MyClass myClass = new MyClass('some', 'thing', 
let path = myClass.getA() != null ? 'foo' :'bar';

但是,尝试在浏览器上运行时,我在控制台中收到以下错误:

ERROR TypeError: myClass.getA is not a function

我错过了什么吗?为了纠正这个问题,我发现的唯一方法是将变量声明为public(它也适用于private,但我的IDE - VS Code - 表示错误)并直接使用它们而不使用访问器方法。

2 个答案:

答案 0 :(得分:0)

您使用错误的语法(Java?)来声明变量myClass。它应该是这样的:

const myClass:MyClass = new MyClass('some', 'thing', 'fff'); 
let path = myClass.getA() != null ? 'foo' :'bar';

答案 1 :(得分:-1)

可能是这样的......我想。

    class MyClass {
    private a: string;
    private b: string;
    private c: string;  //<-------

constructor(private a: string, private b: string, private c: string) {    }

public getA(): string {         return this.a;    }
public getB(): string {        return this.b;    }
public getC(): string {        return this.c;    }
}

    MyClass myClass = new MyClass('some', 'thing', 'an');
    let path = myClass.getA() != null ? 'foo' : 'bar';
    console.log(path);

`

结果:https://www.typescriptlang.org/play/按预期给予了foo。