TS proposes all the props from intersection of the discriminated/tagged union type, but should be proposing on props of determined type.

interface Square {
kind: "square";
size: number;
}
interface Rectangle {
kind: "rectangle";
width: number;
height: number;
}
interface Circle {
kind: "circle";
radius: number;
}
type Shape = Square | Rectangle | Circle;
let shape: Shape = {
kind: "square",
// should propose only `size`
}
Ts 2.9.1