Typescript類型體操 - PickByType

題目

中文

找出T中類型爲U的屬性

示例:

type OnlyBoolean = PickByType<
    {
        name: string;
        count: number;
        isReadonly: boolean;
        isEnable: boolean;
    },
    boolean
>; // { isReadonly: boolean; isEnable: boolean; }

English

From T, pick a set of properties whose type are assignable to U.

For Example

type OnlyBoolean = PickByType<
    {
        name: string;
        count: number;
        isReadonly: boolean;
        isEnable: boolean;
    },
    boolean
>; // { isReadonly: boolean; isEnable: boolean; }

答案

type PickByType<T, U> = { [P in keyof T as T[P] extends U ? P : never]: T[P] };

在線演示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章