面试题答案
一键面试方法一:使用声明文件(.d.ts)
- 实现方式:
- 在项目根目录或某个公共目录下创建一个
.d.ts
文件,例如sharedTypes.d.ts
。 - 在该文件中定义需要共享的类型,如接口:
export interface ComplexInterface { prop1: string; prop2: number; // 其他复杂属性 }
- 其他模块可以直接引用该声明文件来使用这些类型,在
tsconfig.json
中确保include
或files
选项包含了这个.d.ts
文件。
- 在项目根目录或某个公共目录下创建一个
- 优点:
- 简洁明了,对于简单的项目,集中管理类型定义,方便维护。
- 不需要额外的构建步骤,TypeScript编译器会自动识别
.d.ts
文件。
- 缺点:
- 当项目规模变大,
.d.ts
文件可能变得庞大难以管理。 - 缺乏像普通
.ts
文件那样的导入导出灵活性,不能使用import
和export
语句在不同.d.ts
文件间进行复杂的类型组合。
- 当项目规模变大,
方法二:通过普通.ts
文件共享
- 实现方式:
- 创建一个普通的
.ts
文件,例如sharedTypes.ts
。 - 在该文件中定义共享类型,如:
export interface ComplexInterface { prop1: string; prop2: number; // 其他复杂属性 }
- 其他模块通过
import
语句导入使用:
import { ComplexInterface } from './sharedTypes';
- 创建一个普通的
- 优点:
- 利用了TypeScript的模块化系统,导入导出灵活,可根据项目结构组织不同的类型文件。
- 支持在文件中编写逻辑代码(虽然主要用于类型定义,但有时可以辅助类型生成等)。
- 方便进行代码拆分,随着项目规模增长,可将不同类型拆分到多个
.ts
文件中。
- 缺点:
- 相比
.d.ts
文件,在编译时会有额外的处理,因为它包含了代码逻辑(即使只有类型定义)。 - 对于只需要类型定义的场景,相对
.d.ts
文件略显冗余。
- 相比