Код: Выделить всё
type Resp = {
id: string;
keyA: {
subKeyA: string;
subKeyA2: string;
id: string;
}[],
keyB: {
subKeyB: string;
subKeyB2: number;
id: string;
}[],
}
Эти объекты имеют только идентификатор общий, Остальные реквизиты могут быть названы по -разному и имеют разные типы. >const testFn = (src: S, attribute: keyof S[number], idMatch: string) =>{
for (const { id, ...props } of src) {
if (id === idMatch) {
return props[attribute]; // ts error 2536
}
}
return null;
};
< /code>
Функция работает нормально, но TypeScript выбрасывает ошибку при возврате. Это связано с тем, что он видит тип как союз всех возможных типов объектов в этих массивах. < /P>
Как я могу заставить его увидеть только тип объекта, который должен быть возвращен? /п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... d-of-union
Мобильная версия