TypeScript中访问修饰符

不羁的心 提交于 2020-02-05 06:35:45

在这里插入图片描述

TypeScript访问修饰符

ts支持以下访问修饰符:

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

class Animal {
    public age:number=10;
    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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!