使用可选键选择

时间:2019-08-09 14:34:12

标签: typescript

在TypeScript中,是否有一种Pick-style实用程序类型,可以在其中指定可以在所选择的对象类型上使用或不可用的键?例如:

interface Alpha
{
    a: boolean;
    b: boolean;
}

type Picked = OptionalPick<Alpha, 'a' | 'c'>; // { a: boolean }

1 个答案:

答案 0 :(得分:1)

是的,我们可以将第二个参数K定义为仅扩展PropertyKey,然后使用Extarctkeyof 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'>; 

Play