TypeScript – Pick,Partial,ReturnType类型操作
// 假设有一个接口定义了一个用户的属性
interface User {
id: number;
name: string;
email: string;
age: number;
}
// 使用Pick从User接口中选择id和name属性
type UserIDName = Pick<User, 'id' | 'name'>;
// 使用Partial将UserIDName的所有属性变为可选
type PartialUserIDName = Partial<UserIDName>;
// 使用ReturnType获取函数的返回类型
type UserFunctionReturnType = ReturnType<() => User>;
// 示例代码
function getUser(): User {
return { id: 1, name: 'Alice', email: 'alice@example.com', age: 30 };
}
// 使用上述类型
function processUserInfo(info: PartialUserIDName & UserFunctionReturnType) {
// 这里可以访问id, name, email, age,其中id和name是可选的
console.log(info.name);
}
// 调用函数
processUserInfo({ id: 1, name: 'Bob' });
processUserInfo(getUser());
这段代码定义了一个User
接口,并使用了Pick
来创建了一个新的类型UserIDName
,该类型由User
接口中的id
和name
属性组成。接着使用Partial
将UserIDName
中的属性都变成了可选属性,创建了PartialUserIDName
类型。最后,使用ReturnType
获取了函数getUser
的返回类型,并将其与PartialUserIDName
组合使用来创建processUserInfo
函数的参数类型。这个例子展示了如何在TypeScript中创建和使用复合类型。
评论已关闭