type FuncSetNameParams = ['employers', {company: string}] | ['employees', {fio: string}] | ['products', {name: string}];
const setName = (...[key, item]: FuncSetNameParams): string => {
switch (key) {
case 'employers':
return item.company
case 'employees':
return item.fio
case 'products':
return item.name
}
}
https://www.typescriptlang.org/play?target=9&ssl=1...
это если все варианты возвращают строку.
а если тип возвращаемого значения зависит от key, то надо ещё слегонца дописать..
а возможно, всё гораздо проще, и item всегда один и тот же объект, независимо от key. Тогда просто описать его тип и использовать этот тип вместо unknown