Здравствуйте. Подскажите, пожалуйста, не совсем понимаю, почему тайпскрипт не понимает, что если я в params передаю тип, то этот же тип и должен вернуться в get.
Вместо этого, он считает, что постоянно возвращается TGetSkills
То есть, изначально имеем два типа
export type TGetSkills = TApiRequest<
{
isActive?: boolean
'user-id'?: number
skillIds?: number[]
},
{
request_count: number
update_user_id: number
}[]
>
export type TGetSkillsWithCriterions = TApiRequest<
TGetSkills['requestParams'] & { getCriterions: true },
(TGetSkills['response'][number] & { skill_criterions: TSkillCriterion })[]
>
Потом используем их в аксиосе
getSkills: (
params: (TGetSkills | TGetSkillsWithCriterions)['requestParams'],
) =>
instance.get<(TGetSkills | TGetSkillsWithCriterions)['response']>('url', {
params: params,
}),
}
после чего вызываем функцию
const { data } = await schedulerService.getSkills({
getCriterions: true,
})
и по логике тип data должен быть TGetSkillsWithCriterions, но это не так.
Он будет равен TGetSkills
Почему так?