typescript中privatepublicprotected修饰符

Posted zhaoljblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript中privatepublicprotected修饰符相关的知识,希望对你有一定的参考价值。

1、默认为public

2、当成员被标记为private时,它就不能在声明它的类的外部访问,比如:

class Animal {
  private name: string;

  constructor(theName: string) {
    this.name = theName;
  }
}

let a = new Animal(‘Cat‘).name; //错误,‘name’是私有的

3、protected和private类似,但是,protected成员在派生类中可以访问

class Animal {
  protected name: string;

  constructor(theName: string) {
    this.name = theName;
  }
}

class Rhino extends Animal {
     constructor() {
          super(‘Rhino‘);
    }         
    getName() {
        console.log(this.name) //此处的name就是Animal类中的name
    }
}    

4、构造函数也可以被标记为protected。这意味着这个类不能再包含它的类外被实例化,但是能被继承,也就是可以在派生类中被super执行

class Animal {
    protected name: string;
    protected constructor(theName: string) {
       this.name = theName;
    }         
}

//Rhino能够继承Animal
class Rhino extends Person {
    private food: string;
    constructor(name: string, food: string) {
       super(name);
       this.food = food;    

    }    
     getFood() {
        return `${this.name} love this ${this.food}`
     }
}

let rhino = new Rhino(‘zhao‘, ‘banana‘);

 

以上是关于typescript中privatepublicprotected修饰符的主要内容,如果未能解决你的问题,请参考以下文章

在typescript项目中引入如何js依赖

typescript TypeScript中键入的Redux操作和Reducer的问题

深入浅出TypeScript- 在React项目中使用TypeScript

使用 typescript-eslint 在 VSCode 编辑器中未显示 Typescript 错误

如何使用 TypeScript 2.3 中新增的支持来限制 TypeScript 中 React Children 的类型?

现代浏览器中的 TypeScript 支持