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