【发布时间】:2022-01-21 05:10:57
【问题描述】:
我有一个包含以下字段的用户类型,我想在许多地方将它与不同的必填字段一起使用。 我想创建一个泛型类型并使用泛型传递所需的字段以减少样板。
我有什么:
type BaseUser = {
id: number;
name: string;
job: string;
};
我尝试了什么:
type User<T extends (keyof BaseUser)[]> = {
[K in keyof T as T[K]]: BaseUser[T[K]];
};
我希望它如何使用它:
function deleteUser(user: User<['id']> ) { };
function addUser(user: User<['name', 'job']> ) { };
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: typescript generics