// 普通用户类型
type NormalUser = {
name: string;
age: number;
};
// 管理员用户类型
type AdminUser = NormalUser & {
permission: string;
};
// 联合类型表示用户可能是普通用户或管理员用户
type User = NormalUser | AdminUser;
// 处理用户信息的函数
function handleUser(user: User) {
if ('permission' in user) {
console.log(`管理员用户 ${user.name},年龄 ${user.age},权限:${user.permission}`);
} else {
console.log(`普通用户 ${user.name},年龄 ${user.age}`);
}
}
// 测试普通用户
const normalUser: NormalUser = { name: '张三', age: 20 };
handleUser(normalUser);
// 测试管理员用户
const adminUser: AdminUser = { name: '李四', age: 30, permission: 'admin' };
handleUser(adminUser);