#typescript
#typescript
Вопрос:
У меня есть следующий код:
type TypeA = {
type: 'typeA';
foo: number;
typeB: TypeB;
};
type TypeB = {
type: 'typeB';
bar: number;
};
type IntersectionType = TypeA amp; TypeB;
const func = (val: TypeA): IntersectionType => {
return { ...val, ...val.typeB };
};
но я получаю ошибку
The intersection 'IntersectionType' was reduced to 'never' because property 'type' has conflicting types in some constituents.
Есть ли способ правильно ввести функцию на основе TypeA
и TypeB
?
TypeA
и TypeB
генерируются автоматически, поэтому я не могу их изменить.
Комментарии:
1. Каким вы хотите, чтобы
type
свойство объединения было?'typeA' | 'typeB'
?string
?2. На самом деле меня не волнует это свойство, оба в порядке. В этом примере тип всегда будет
'typeB'
, что нормально.3. Хотите ли вы, чтобы результат обладал
typeB
свойством? (Это произойдет по мере того, как функция будет написана в данный момент.)4. Может быть, что-то вроде
type UnionType = Omit<TypeA, 'type'> amp; Omit<TypeB, 'type'> amp; { type: string };
5. Изменил название типа на
IntersectionType
для наглядности