If you use discriminated union types - e.g. give them both a type key which is a unique string, then you don't need type guards as typescript is smart enough to understand that checking the type key does the type discrimination.
Sure, but you don't always have control over an external module or service, and it still something flow is better at
With Typescript, you have to write custom Type Guards functions, whereas Flow is smart enough to infer type