I was curious to know what happens if you do an intersection of two types that have the same property but with different types. For e.g.
type A = { age: number };
type B = { age: string };
type C = A & B;
const c: C = { age: 10 };
This doesn't work. The age in type C is assigned a type of never
. This is because there is no value that can satisfy the condition of a number and a string at the same time. Hence it can never
have a value.
If you still want to have a type that can take either a number or a string you can go ahead with a union type like so -
type C = A | B;
const c: C = { age: 10 };
Peace ✌️
Top comments (0)