TS访问修饰符

59 阅读1分钟

TypeScript访问修饰符

public:所有定义成public的属性和方法都可以在任何地方进行访问。

class Animal{
public run(){
console.log("这是一个跑的方法")
    }
}
class Dog extends Animal{}
let dog:Dog=new Dog()
dog.run()  //继承过来的方法
dog.age=99  //继承过来的属性
console.log(dog.age)

private:所有定义成private的属性和方法都只能在类定义内部进行访问。

class Animal{
private age:number=10;
private run(){
console.log("这是一个跑的方法")
    }
}
class Dog extends Animal{
}
let dog:Dog=new Dog()
//dog.run()  //属性‘run’为私有属性,只能在类‘Animal’中访问
//dog.age=99;  //属性‘age’为私有属性,只能在类‘Animal’中访问

protected:多有定义成protected的属性和方法可以从类定义内部访问,也可以从子类中访问。

class Animal{
protected run(){
console.log("这是一个跑的方法")
        }
    }
class Dog extends Animal{
constructor(){
super()
super.run()
        }
    }
let dog:Dog=new Dog()
//dog.run()  //属性‘run’受保护,只能在类‘Animal’及其子类中访问

readonly:关键字将属性设置为只读的

class Animal{
readonly age:number=10;
}
class Dog extends Animal{
}
let dog:Dog=new Dog()
//dog.age=99;  //只读属性不可以修改 :Cannot assign to 'age' because it is a read-only property