Сделайте TypeScript идентифицировать конкретный тип объекта в объектах массива вместо объединенияJavascript

Форум по Javascript
Ответить
Anonymous
 Сделайте TypeScript идентифицировать конкретный тип объекта в объектах массива вместо объединения

Сообщение Anonymous »

Существует API, который генерирует ответ, подобный этому: < /p>

Код: Выделить всё

type Resp = {
id: string;
keyA: {
subKeyA: string;
subKeyA2: string;
id: string;
}[],
keyB: {
subKeyB: string;
subKeyB2: number;
id: string;
}[],
}
Таким образом, это объект с идентификатором String Prop, а другие реквизиты являются массивами объектов.
Эти объекты имеют только идентификатор общий, Остальные реквизиты могут быть названы по -разному и имеют разные типы. >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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»