машинописный текст Пропустить пропустить все остальные члены, если один из членов {{index: string]: any} - PullRequest
1 голос
/ 02 мая 2020
type a = { a: 1, [index: string]: any , name:string, b?:boolean}
type b = Omit<a,'a'> //b is {[index: string]:any}

детская площадка

тип b будет {[index: string]:any}, но я ожидаю, что он будет {[index: string]: any , name:string, b?:boolean}

почему это происходит?

1 Ответ

1 голос
/ 03 мая 2020

Я нашел решение и объяснение в этой теме

type a = { a: 1, [index: string]: any , name:string, b?:boolean}

declare type _removeIndexSignature<T> = Pick<
        T,
        {
            [K in keyof T]: string extends K ? never : number extends K ? never : K
        } extends { [_ in keyof T]: infer U }
            ? U
            : never>

type b = _removeIndexSignature<a> //{ a: 1, name:string, b?:boolean}

детская площадка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...