MST

星途 面试题库

面试题:TypeScript 模块化开发里 import 和 export 的复杂场景应用

在一个大型 TypeScript 项目中,有一个模块 `userModule`,它包含多个接口(`UserInfo`、`UserSettings` 等)、类型别名(`UserRole`)以及多个函数(`getUserInfo`、`updateUserSettings` 等)。现在要求将不同功能分别按需导出,并且在另一个模块 `app.ts` 中进行导入使用,同时要考虑模块的复用性和代码结构的合理性,给出 `userModule.ts` 和 `app.ts` 的详细代码实现。
45.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

userModule.ts

// 定义接口
export interface UserInfo {
    name: string;
    age: number;
}

export interface UserSettings {
    theme: string;
    language: string;
}

// 定义类型别名
export type UserRole = 'admin' | 'user' | 'guest';

// 定义函数
export const getUserInfo = (): UserInfo => {
    return { name: 'defaultName', age: 18 };
};

export const updateUserSettings = (settings: UserSettings): void => {
    console.log(`Updating user settings: ${JSON.stringify(settings)}`);
};

app.ts

import { getUserInfo, updateUserSettings, UserInfo, UserSettings, UserRole } from './userModule';

// 使用导入的内容
const userInfo: UserInfo = getUserInfo();
console.log(userInfo);

const newSettings: UserSettings = { theme: 'dark', language: 'en' };
updateUserSettings(newSettings);

// 使用类型别名
let role: UserRole = 'user';