1. 类型定义
// 基本信息类型别名
type BasicInfo = {
name: string;
age: number;
};
// 权限信息类型别名
type PermissionInfo = {
role: string;
accessibleFunctions: string[];
};
// 操作记录类型别名
type OperationRecord = {
operationTime: string;
operationContent: string;
};
// 用户数据接口,使用联合类型表示操作记录可能是可选的
interface UserData {
basicInfo: BasicInfo;
permissionInfo: PermissionInfo;
operationRecords?: OperationRecord[];
}
2. 模拟获取数据并合并的代码
// 模拟从不同API获取数据的函数
function getBasicInfo(): BasicInfo {
return {
name: "John Doe",
age: 30
};
}
function getPermissionInfo(): PermissionInfo {
return {
role: "admin",
accessibleFunctions: ["function1", "function2"]
};
}
function getOperationRecords(): OperationRecord[] | undefined {
return [
{
operationTime: "2023-01-01",
operationContent: "Performed action"
}
];
}
// 合并数据为完整用户数据对象
function mergeUserData(): UserData {
const basic = getBasicInfo();
const permission = getPermissionInfo();
const operations = getOperationRecords();
return {
basicInfo: basic,
permissionInfo: permission,
operationRecords: operations
};
}
// 声明变量并利用定义的类型系统
const user: UserData = mergeUserData();
console.log(user);