49. asserts never

  - accepted / - tried

In switch, it is easy for us to miss out some cases.

type Value = 'a' | 'b' | 'c';
declare let value: Value

switch (value) {
  case 'a':
    break;
  case 'b':
    break;
  default:
    break;
}

We missed out case 'c' in above code and compiler doesn't compain.

Plase create function assertsNever() to check for exhaustiveness.

type Value = 'a' | 'b' | 'c';
declare let value: Value

switch (value) {
  case 'a':
    break;
  case 'b':
    break;
  default:
    assertsNever(value)
    break;
}

Now TypeScript would complaint the missing case 'c'.

10分間以内で解いてみて

(5)