是否有可能以一种类型检查器没有问题的方式选择一个结构?
来自 TypeScript:
// Considering a main object type containing all fields:
interface User {
id: number;
name: string;
password: string;
};
// We can use a picked type to select only certain fields:
const get_all_users = (): Pick<User, 'id' | 'name'>[] => {/*...*/};
Pick
类型使得 tsc 可以批准这一点:const picked_user: Pick<User, 'id' | 'name'> = user;
我缺少任何板条箱/语言功能吗?我的主要观点是,我不想显式命名该结构,例如
UserPicked
,当有很多选定的变体时,这可能会变得很复杂。
我认为解决这个问题的通常方法是通过枚举。像这样的东西:
enum Picked {
User(User),
Name(String),
Id(String),
}
我也不明白这会变得比 Typescript 的
Pick
结构更复杂。