```
enum Test {
  one,
  two,
}

const play = (n: Test) => {
  switch (n) {
    case Test.one:
      return 'hello';
    case Test.two:
      return {};

    default:
      exhaustive(n);
      throw new Error('hi');
  }
};

const b = play(Test.one);

//
console.log(b);

```

Can someone help me understand why Typescript can't infer that the return type of `play(Test.one)` is a string instead of an object? Also, if there's something I can do to make it work, I would love to know that as well.

Typescript 3.9.4

Hovering over the typeof b yields:
[![wrong inferred type](https://i.stack.imgur.com/aZZuo.png)](https://i.stack.imgur.com/aZZuo.png)