前端/移动开发面试题更新 2026-08-05

请解释 TypeScript 中接口的概念,并说明如何定义一个接口。

前端/移动开发技术原理TypeScript

考察说明

考查对 TypeScript 接口核心概念和定义语法的掌握程度。

回答思路

  1. 【回答框架 1】接口是 TypeScript 中用于定义对象结构或契约的语法,它描述对象应有的属性及其类型,但不提供具体实现。接口通过 interface 关键字定义,例如 interface Person { name: string; age: number },表示一个包含 name 和 age 属性的对象类型。
  2. 【回答框架 2】接口可以定义可选属性(属性名后加 ?)、只读属性(readonly 修饰符)以及函数类型(如 interface SearchFunc { (source: string, subString: string): boolean })。接口还支持继承,通过 extends 关键字扩展其他接口,实现接口的组合复用。
  3. 【回答框架 3】接口在编译阶段用于类型检查,编译后不会生成任何 JavaScript 代码,属于纯类型层面的抽象。它常用于约束函数参数、对象变量或类的实现结构,提高代码的可读性和可维护性。
  4. 【回答框架 4】定义接口时,属性类型可以是基本类型、联合类型、数组、元组或其他接口,也可以使用索引签名(如 [key: string]: any)描述动态属性。接口与类型别名(type)在多数场景可互换,但接口更侧重于对象结构的声明,且支持声明合并。
  5. 【回答框架 5】实际使用中,接口常用于定义 API 响应结构、组件 props 或配置对象,确保数据形状一致。通过接口约束,可以在开发阶段捕获属性缺失或类型错误,减少运行时异常。
  6. 【关键点 1】接口用 interface 关键字定义,描述对象结构,不包含实现。
  7. 【关键点 2】支持可选属性、只读属性、函数类型和继承。
  8. 【关键点 3】接口仅存在于编译期,编译后无运行时产物。
  9. 【关键点 4】接口与类型别名有区别,接口支持声明合并,类型别名更灵活。
  10. 【关键点 5】接口常用于约束对象、函数参数和类实现,提升类型安全。
  11. 【易错点 1】接口不能表示联合类型或映射类型,这些场景需用类型别名。
  12. 【易错点 2】接口的只读属性仅在编译期检查,运行时仍可被修改。
  13. 【易错点 3】过度使用接口可能导致类型定义冗余,应结合类型推断简化代码。