You need to declare multiple types that you want to be acceptable, for example
type TIn1 = {
    xa: number;
    xb: number;
    // ...
}
type TIn2 = {
        // ...
}
type TIn3 = {
    xa?: string;
    xb?: string;
}
And then combine them in a union: TProps = TIn1 | TIn2 | TIn3