乐闻世界logo
搜索文章和话题

What are access modifiers in TypeScript classes?

2 个月前提问
2 个月前修改
浏览次数30

1个答案

1

在TypeScript中,类的访问修饰符主要有三种:publicprivateprotected。这些修饰符用来限定类成员(属性和方法)的访问级别。

  1. public(公开的):这是默认的访问级别。被标记为 public 的成员可以在任何地方被访问,不论是类的内部还是外部。这意味着,任何创建了类实例的地方都可以访问和修改这些成员。

    示例:

    typescript
    class Animal { public name: string; constructor(name: string) { this.name = name; } public display(): void { console.log(this.name); } } let dog = new Animal("Buddy"); dog.display(); // 输出:Buddy console.log(dog.name); // 输出:Buddy
  2. private(私有的):被标记为 private 的成员只能在类的内部访问。这意味着这些成员不可以在类的外部直接访问,也不可以在任何继承了该类的子类中访问。

    示例:

    typescript
    class Animal { private name: string; constructor(name: string) { this.name = name; } display(): void { console.log(this.name); } } let cat = new Animal("Whiskers"); cat.display(); // 输出:Whiskers // console.log(cat.name); // 错误:Property 'name' is private and only accessible within class 'Animal'.
  3. protected(受保护的):被标记为 protected 的成员可以在类的内部访问,以及在任何继承了该类的子类中访问。但是,不能在类的实例外部直接访问这些成员。

    示例:

    typescript
    class Animal { protected name: string; constructor(name: string) { this.name = name; } } class Cat extends Animal { constructor(name: string) { super(name); } display(): void { console.log(this.name); } } let cat = new Cat("Paws"); cat.display(); // 输出:Paws // console.log(cat.name); // 错误:Property 'name' is protected and only accessible within class 'Animal' and its subclasses.

这些访问修饰符是用来实现封装和隐藏内部实现细节的,有助于保持代码的整洁和安全。

2024年8月2日 13:49 回复

你的答案