属性“ reter”在类型“ typeof TESTING”上不存在

时间:2019-03-26 12:38:30

标签: typescript

出现此错误可能是什么问题?我正在尝试使用静态方法从扩展类访问受保护的字段。

Typescript playground

class TEST {
    name: string;
    protected reter: string = 'show retry';
    constructor(name: string, public age: number) {
        this.name = name;
    }
}

class TESTING extends TEST {
    constructor(public name:string, public age:number) {
        super('sd', 12);
        this.name = 'indraraj'
    }

    static getReter() {
        return this.reter;
    }
}

let test = new TESTING('indra', 12);
console.log(TESTING.getReter)
console.log(test)

1 个答案:

答案 0 :(得分:1)

因为getReter()是静态方法。

这意味着它是由类构造函数(i.e TESTING.getReter())而不是实例访问的,因此-不知道this,这是对 instance ,而不是类构造函数本身。

删除static表示法,您将可以访问。

有关更多信息,请关注此帖子:https://www.typescriptlang.org/docs/handbook/classes.html#static-properties