MST

星途 面试题库

面试题:TypeScript中export的模块合并与重导出应用

假设有两个TypeScript模块A和B,A模块定义了一些类型和函数,B模块需要使用A模块的部分内容并进行扩展。请说明如何通过export实现模块合并与重导出,使得其他模块能方便地使用扩展后的功能,写出具体的代码结构及关键代码。
26.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

1. 创建模块A(假设为moduleA.ts

// 定义类型
export type User = {
    name: string;
    age: number;
};

// 定义函数
export function greet(user: User) {
    return `Hello, ${user.name}! You are ${user.age} years old.`;
}

2. 创建模块B(假设为moduleB.ts

// 导入模块A的内容
import { User, greet } from './moduleA';

// 扩展类型
export type ExtendedUser = User & {
    address: string;
};

// 扩展函数
export function extendedGreet(user: ExtendedUser) {
    return `${greet(user)} Your address is ${user.address}.`;
}

// 重导出A模块部分内容及B模块扩展内容
export { User, greet, ExtendedUser, extendedGreet };

3. 在其他模块中使用(假设为main.ts

import { User, greet, ExtendedUser, extendedGreet } from './moduleB';

// 使用A模块原始功能
const user: User = { name: 'Alice', age: 30 };
console.log(greet(user));

// 使用B模块扩展功能
const extendedUser: ExtendedUser = { name: 'Bob', age: 25, address: '123 Street' };
console.log(extendedGreet(extendedUser));