Pick
从 Type 中选取一系列的属性,这些属性来自于 Keys(字符串字面量或字符串字面量的联合类型),用这些属性构成新的 type。
type Test = {
name: string;
age: number;
salary?: number;
};
//pick
type picked = Pick<Test, "name" | "age">;
// 结果
// type picked = {
// name: string;
// age: number;
// }
ReturnType
获取函数的返回值类型
// 比如
type Func = () => User;
type Test = ReturnType<Func>; // Test = User
// 其他例子
type T0 = ReturnType<() => string>; // string
type T1 = ReturnType<<T>() => T>; // unknown
type T2 = ReturnType<<T extends U, U extends number[]>() => T>; // number[]