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