面试题答案
一键面试interface User {
name: string;
age: number;
email: string;
}
function printUserInfo(user: Partial<User>) {
for (const key in user) {
if (user.hasOwnProperty(key)) {
console.log(`${key}: ${user[key as keyof typeof user]}`);
}
}
}
// 示例使用
const partialUser: Partial<User> = { name: 'John' };
printUserInfo(partialUser);
这种参数类型设计的优势
- 灵活性:使用
Partial
转换后的类型允许传入部分属性的对象,在实际应用场景中,比如更新用户信息的接口,可能只需要传入需要更新的部分字段,而不是完整的用户信息,这样调用者的使用更加灵活。 - 安全性:在TypeScript中,这种设计仍然会受到类型检查的约束,保证传入的属性是
User
接口中定义过的,避免传入非法属性,提高代码的健壮性。