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

在 TypeScript 中,object 类型具体指什么?它与 Object、{} 以及 any 类型有何区别?请说明其典型使用场景。

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

考察说明

考查对 TypeScript 基础类型体系中 object 类型的准确理解,以及区分易混淆类型的能力。

回答思路

  1. 【回答框架 1】object 类型表示非原始类型的值,即非 number、string、boolean、symbol、null、undefined 等基本类型。它主要用来描述对象、数组、函数等复合类型的值。
  2. 【回答框架 2】Object 类型是所有 Object 类型的实例的类型接口,包含内置方法属性,而 object 类型只表示非原始类型,范围更窄。{} 类型表示非 null 和 undefined 的任何值,包括原始类型,因为原始类型可以赋给空对象类型。
  3. 【回答框架 3】any 类型完全跳过类型检查,会失去类型安全,而 object 类型仍然保持类型约束,不能访问任意属性,需通过类型断言或类型守卫来具体化。
  4. 【回答框架 4】使用场景:函数参数约束为对象或数组而不关心具体结构时,使用 object 类型;泛型约束中也常用 extends object 来限制参数必须为非原始类型。
  5. 【回答框架 5】注意 object 类型并不具体,无法直接访问属性,需要先进行类型收窄或断言到具体接口,配合类型系统使用更安全。
  6. 【关键点 1】object 类型代表所有非原始类型,不包括 null 和 undefined。
  7. 【关键点 2】object 与 Object 不同,Object 是内置类型接口,object 是类型关键字。
  8. 【关键点 3】{} 可接受原始类型,而 object 不接受。
  9. 【关键点 4】object 类型常用于泛型约束和参数类型宽泛的场景。
  10. 【易错点 1】不能直接把 object 类型当作具体对象使用,访问属性会报错。
  11. 【易错点 2】不要把 object 与 Object 混淆,两者作用范围不同。
  12. 【易错点 3】避免用 object 替代具体接口,否则会丢失类型信息。