TypeScript: мы можем запретить вывод смешанных типов? - PullRequest
0 голосов
/ 02 апреля 2020

В TypeScript вывод типов довольно полезен, когда есть только один очевидный результирующий выводимый тип.

Но когда он выводит переменную смешанного типа, это может привести к невидимой неожиданной разрешенной смешанной типизации, что разработчик, возможно, не предполагал (даже если они сами создали ошибку).

Вот простой пример:

const showMyArrayBoolean = someBooleanValue && someArray.length;
  • Вывод Typescript showMyArrayBoolean имеет тип: false|number
  • ... когда разработчик мог (неверно) ожидать, что он просто всегда будет логическим

В этом примере разработчик допустил ошибку, предполагая, что && всегда будет иметь логическое значение, тогда как в действительности это не так. Таким образом, это может привести к неожиданным ошибкам, которые могут быть обнаружены только во время выполнения. Но некоторые люди предпочитают, чтобы компилятор предупреждал их об этом.

Существует ли какая-либо функция или настройка tsconfig.json, которая может помешать TypeScript выводить смешанные типы?

Это именно тот случай &&, с которым было бы хорошо разобраться, но меня больше интересует более широкое решение, которое просто полностью их запрещает, независимо от причины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...