'typeof x' type guard can be unsound in one of the following two cases:
  1. typeof x never corresponds to the specified value (e.g., typeof x === 'number' when 'x' is 'string | boolean')
  2. typeof x always corresponds to the specified value (e.g., typeof x === 'string' when 'x' is 'string')