который наследуется от функции, то ошибка из за спреда, т.к якобы тип FuncParametersMaybeRef не возвращает массив, но при этом, если я сую в FuncParametersMaybeRef функцию, то всё норм (последний скрин)
Покажи FuncParametersMaybeRef
A rest parameter must be an array type
Попробуй ограничить тип для Params.
Кстати поможет добавить условие: ... = Params extends any[] ? { ... } : never
Лол, реально, спасибо
По идее ограничение должно было, но оно не работает по какой-то причине.
потому что в массивах и тюплах мапятся ([K in keyof]) только значения по индексам, но НЕ атрибуы и методы (length, push): https://github.com/microsoft/TypeScript/pull/26063 а тип аргументов можно описать не только массивом, но и массивоподобным объектом. у такого объекта FuncParametersMayBeRef превратит в рефы все методы, и это уже точно не будет похоже на массив. о том и ошибка
Обсуждают сегодня