В TypeScript вывод типов довольно полезен, когда есть только один очевидный результирующий выводимый тип.
Но когда он выводит переменную смешанного типа, это может привести к невидимой неожиданной разрешенной смешанной типизации, что разработчик, возможно, не предполагал (даже если они сами создали ошибку).
Вот простой пример:
const showMyArrayBoolean = someBooleanValue && someArray.length;
- Вывод Typescript
showMyArrayBoolean
имеет тип: false|number
- ... когда разработчик мог (неверно) ожидать, что он просто всегда будет логическим
В этом примере разработчик допустил ошибку, предполагая, что &&
всегда будет иметь логическое значение, тогда как в действительности это не так. Таким образом, это может привести к неожиданным ошибкам, которые могут быть обнаружены только во время выполнения. Но некоторые люди предпочитают, чтобы компилятор предупреждал их об этом.
Существует ли какая-либо функция или настройка tsconfig.json
, которая может помешать TypeScript выводить смешанные типы?
Это именно тот случай &&
, с которым было бы хорошо разобраться, но меня больше интересует более широкое решение, которое просто полностью их запрещает, независимо от причины.