Не изменяются типы функций по умолчанию

Доброго времени суток!

Столкнулся с казалось бы частой проблемой, но по какой-то причине не смог найти решения. Необходимо заменить тип для стандартного метода Object.keys, чтобы тип возвращаемого значения был keyof от типа переданного значения, иначе мапинг после сыпет ошибку вида string не является индексатором для T.

Описал типы в отдельном файле custom.d.ts:

declare global {
    interface ArrayConstructor {
        isArray(arg: ReadonlyArray<any> | Readonly<any>): arg is ReadonlyArray<any>
    }

    interface ObjectConstructor {
        static keys<T extends object>(arg: T): (keyof T)[]
    }
}

Подключил его в tsconfig.json:

{
    ...,
    "include": [ ..., "custom.d.ts" ]
}

Однако это не работает. Работает только если написать те же типы непосредственно в файле с кодом, который использует эти методы.

Заранее спасибо за ответ.


Ответы (0 шт):