TypeScript--类的访问修饰

类的访问修饰符

  • public类成员默认都是公开的
  • private,声明私有成员,私有成员无法被继承,不希望被外部修改的成员定义为私有
  • protected 可以继承,只能内部访问
  • readonly只读的和const定义的常量类似
// 类成员默认都是公开的
// 类成员默认都是public
// private,声明私有成员,私有成员无法被继承
// 我们可以把不希望被外部修改的成员定义为私有
// protected 可以继承
// readonly只读的和const定义的常量类似
class Person{
    public readonly name: string = 'zs';
    // 类成员默认都是public
    age: number;
    //私有化成员,只能内部访问
    // 声明类成员的同事为其赋值
    private readonly type: string = '人类'

    //受保护成语和private一样外部不能访问
    //但是可以继承
    protected foo: string = 'bar';

    public getType() { 
        // 在类的内部访问私有成员
        //但外部不能访问
        return this.type;
    }

    // changeType() { 
    //     this.typetype = 'haha'
    // }

}

//new Person()
new Person().getType();

//私有成员无法被继承
class Student extends Person{

    getfoo() {
        // tpye不能访问
        // this.tpye
        console.log(this.foo)
    }
}

new Student().getfoo();
//new Person().name = 'lisi';

类的通过修饰符简写成员

class Person1 { 
    // public name: string;
    // public age: number;
    // constructor(name: string, age: number) {
    //     this.name = name
    //     this.age = age
    // }
    public gender:string
    constructor(public name: string, public age: number,gender:string) {
        this.gender = gender;

    }
}

new Person1('zs', 18,'男');

你可能感兴趣的:(TypeScript--类的访问修饰)