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));