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

在 TypeScript 中,模块的定义方式与导入机制是怎样的?请说明如何声明一个模块并从中导出功能,以及如何在其他文件中引用这些功能。

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

考察说明

考察对 TypeScript 模块系统(定义、导入)的基本理解。

回答思路

  1. 【回答框架 1】TypeScript 模块采用与 ES 模块一致的机制,定义模块即指包含导出或导入声明的文件。模块内部成员默认私有,需通过 export 关键字导出。
  2. 【回答框架 2】导出方式包括具名导出(export const、export function 等)和默认导出(export default)。具名导入使用 import { 名称 } from '路径',默认导入使用 import 名称 from '路径'。
  3. 【回答框架 3】当需要整合多个导出时,可使用 import * as 命名空间 from '路径' 进行整体导入。类型导出和导入可使用 export type 和 import type 以保持 type-only 语义。
  4. 【回答框架 4】TypeScript 支持路径别名和模块解析配置(如 tsconfig 的 module、moduleResolution),但不同模块格式(CommonJS 等)在语法略有差异,通常推荐使用 esModuleInterop 处理兼容。
  5. 【关键点 1】模块基于文件,export 声明导出,import 声明导入。
  6. 【关键点 2】支持具名导出、默认导出及混合导出。
  7. 【关键点 3】使用 import * as 导入整个模块命名空间。
  8. 【关键点 4】类型和值可以分别使用 import type 和普通 import。
  9. 【关键点 5】模块解析受 tsconfig 中 module 和 moduleResolution 配置影响。
  10. 【易错点 1】混淆默认导出与具名导出的导入语法,导致引用错误。
  11. 【易错点 2】未启用 esModuleInterop 时直接导入 CommonJS 模块可能出现互操作问题。
  12. 【易错点 3】循环导入可能引发执行顺序问题,需注意模块依赖设计。