Typescript類型體操 - OmitByType

題目

中文

T中選出一組無法分配給U的屬性

示例:

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

English

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

For Example

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

答案

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

在線演示

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