interview
typescript-frontend
TypeScript 的类有哪些成员可见性

前端 TypeScript 面试题, TypeScript 的类有哪些成员可见性?

前端 TypeScript 面试题, TypeScript 的类有哪些成员可见性?

QA

Step 1

Q:: TypeScript 中的类成员可见性有哪些?

A:: TypeScript 的类成员可见性主要有三种:public、private 和 protected。public 成员可以被任何地方访问。private 成员只能在声明它的类内部访问。protected 成员只能在声明它的类及其子类中访问。

Step 2

Q:: 如何在 TypeScript 中声明一个 private 成员?

A:: 可以在类的成员前面加上 private 关键字来声明该成员为私有的。例如:private name: string;

Step 3

Q:: TypeScript 中的 protected 和 private 有什么区别?

A:: private 成员只能在声明它的类内部访问,而 protected 成员除了在声明它的类内部可以访问外,还可以在该类的子类中访问。

Step 4

Q:: 在 TypeScript 中如何访问类的 private 成员?

A:: 类的 private 成员只能在该类内部进行访问。可以通过类的方法在类内部访问 private 成员。例如:this.name

Step 5

Q:: TypeScript 中的 public 成员默认是可见的,这是真的吗?

A:: 是的。在 TypeScript 中,类的成员默认是 public 的。如果没有明确指定可见性修饰符,成员就会被认为是 public 的。

Step 6

Q:: TypeScript 中的 readonly 修饰符如何与可见性修饰符结合使用?

A:: readonly 修饰符可以与 public、private 或 protected 一起使用。它用于指定成员在被初始化后不能被修改。例如:public readonly name: string; 表示 name 是一个只能被读的 public 成员。

用途

面试 TypeScript 类成员的可见性是为了评估候选人对封装、继承和访问控制的理解。这些概念对于构建健壮、可维护的代码库至关重要。使用这些可见性修饰符可以更好地控制类的 API,确保类的内部实现细节不会被外部代码依赖。在实际生产环境中,使用合适的可见性修饰符可以避免外部代码直接访问或修改类的内部状态,从而减少错误和提高代码的安全性。\n

相关问题

🦆
TypeScript 中的接口和类的区别是什么?

接口主要用于定义结构,而类则用于实现功能。接口只是描述对象的形状,而类不仅描述形状,还包含具体的行为和逻辑。

🦆
TypeScript 中如何实现接口?

可以使用 implements 关键字让类实现接口。例如:class MyClass implements MyInterface { ... }。类必须实现接口中声明的所有属性和方法。

🦆
TypeScript 中的抽象类和接口有什么区别?

抽象类可以包含具体的方法实现,而接口只能声明方法。抽象类可以有构造函数,而接口没有。抽象类用于共享行为,而接口用于类型约束。

🦆
TypeScript 中如何定义和使用泛型类?

可以在类名后面使用尖括号 <T> 来定义泛型类。例如:class MyClass<T> { ... }。使用时可以传入具体的类型,如 const instance = new MyClass<string>();

🦆
在 TypeScript 中,何时使用类而非接口?

当需要实现某些行为或逻辑时,使用类更为合适。接口用于描述对象的形状和约束,而类用于封装具体的行为和状态。