📜  typescript 默认 public 或 private - TypeScript (1)

📅  最后修改于: 2023-12-03 14:48:05.658000             🧑  作者: Mango

TypeScript 默认 public 或 private

在 TypeScript 中,默认的访问修饰符是 public 或 private。这意味着,如果你在类中声明一个属性或方法,如果不显式指定修饰符,那么默认的访问修饰符就是 public 或 private。

public

public 修饰符表示该属性或方法可以在类内部和外部访问。下面是一个示例:

class Person {
  public name: string;
  constructor(name: string) {
    this.name = name;
  }
  public sayHello() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const person1 = new Person('Alice');
person1.sayHello(); // Output: 'Hello, my name is Alice'
console.log(person1.name); // Output: 'Alice'
private

private 修饰符表示该属性或方法只能在类内部访问。下面是一个示例:

class Person {
  private name: string;
  constructor(name: string) {
    this.name = name;
  }
  public sayHello() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const person1 = new Person('Alice');
person1.sayHello(); // Output: 'Hello, my name is Alice'
console.log(person1.name); // Output: Error: Property 'name' is private and only accessible within class 'Person'
使用访问修饰符的好处

使用访问修饰符可以限制不必要的访问,提高代码的安全性。同时,使用它们也可以使代码更易于维护,因为在类的定义中可以清楚地看出哪些属性和方法是公共的,哪些是私有的。

另外,还可以使用 readonly 修饰符将属性标记为只读。这意味着,一旦给该属性赋值,就不能再修改它了。

class Person {
  public readonly name: string;
  constructor(name: string) {
    this.name = name;
  }
}

const person1 = new Person('Alice');
console.log(person1.name); // Output: 'Alice'
person1.name = 'Bob'; // Output: Error: Cannot assign to 'name' because it is a read-only property

总之,使用 TypeScript 的访问修饰符可以使代码更加安全和易于维护。