Multiple types like in TypeScript

So why did Kotlin not implement this.

Because the designer don’t see the need for. Most people argue to use discriminated unions instead, which aren’t as elegant as non-disjoint untagged unions.