Ваша проблема вызвана тем, что вы набираете arrays
параметр customFunc
: когда он Array<any>
(буквально "массив any
") и параметр только что возвращен, выводимый тип функции возвращается также "массив из any
".
Вам нужно сообщить, что будет содержать массив, и вы можете сделать это, указав форму объекта:
export function customFunc(...arrays: Array<{ name: string; value: string }>){
return arrays
}
или с помощью универсальных шаблонов. :
export function customFunc<T extends {}>(...arrays: Array<T>){
return arrays
}
в этом случае тип возвращаемого значения функции будет выведен из формы объекта, переданного в функцию (в той точке, где вызывается функция).
Первый подход лучше, когда функция ожидает точную форму (потому что она, например, выполняет некоторые манипуляции с указанными c полями), тогда как последняя лучше, когда функция делает что-то, где точная форма не ожидается (вы можете «объединить» подходы, сделав параметр extends
более конкретен c, чем просто {}
).