在TypeScript中,是否有一种Pick
-style实用程序类型,可以在其中指定可以在所选择的对象类型上使用或不可用的键?例如:
interface Alpha
{
a: boolean;
b: boolean;
}
type Picked = OptionalPick<Alpha, 'a' | 'c'>; // { a: boolean }
答案 0 :(得分:1)
是的,我们可以将第二个参数K
定义为仅扩展PropertyKey
,然后使用Extarct
从keyof T
中提取联合中的任何属性K
:
interface Alpha
{
a: boolean;
b: boolean;
}
type OptionalPick<T, K extends PropertyKey> = Pick<T, Extract<keyof T, K>>
type Picked = OptionalPick<Alpha, 'a' | 'c'>;