Мы не испытываем никакой ненависти к JavaScript. Нас беспокоит недостаток доверия к нему.

Честно говоря, я не питаю ненависти к JavaScript. Я посвятил значительную часть своей карьеры веб-разработчика работе с ним. Однако я сознательно решил прекратить его использование не из-за нелюбви, а потому, что потерял веру в его надежность.

Даже при использовании TypeScript нельзя полностью полагаться на объекты, полученные из кода JavaScript. Свойства, типы и значения этих объектов остаются неопределенными и непредсказуемыми, что делает их ненадежными в любой момент.

На код JavaScript нельзя полагаться как на надежный источник документации. Ему не хватает возможности предоставлять исчерпывающую информацию об объектах и их поведении во время выполнения.

Недостаток знаний об объектах и их поведении во время выполнения делает код JavaScript ненадежной формой документации.

Расшифровка дилеммы TypeScript: причины осторожного подхода

  1. «Как справиться с огромной проблемой кодовой базы JavaScript»: Таким образом, вы будете использовать объекты JavaScript, но какова цель включения TypeScript? Надежность на его автозаполнение становится сомнительной, и вам придется включать проверки во время выполнения из-за неопределенности, связанной с данными, поступающими из JavaScript.
  2. «У нас есть сторонняя библиотека JavaScript».: Использование строгого TypeScript предполагает создание типов для сторонней библиотеки без использования этого в качестве оправдания для сохранения JavaScript. Это предотвращает оправдания в будущем и отражает концепцию отказа от конфет, чтобы противостоять искушению, например, при потере веса. Тот же принцип применим и к кодированию.
  3. «Некоторые разработчики JavaScript не хотят изучать TypeScript»: неохотные разработчики могут попытаться сорвать переход. Если у них есть подтвержденный послужной список успеха, возможно, лучше всего учесть их предпочтения. Однако если им не удалось добиться успеха, это не следует использовать в качестве оправдания.

Заключение

В процессе написания этой статьи я понял, что существуют неожиданно сильные аргументы против перехода на TypeScript.

Если вы твердо верите, что TypeScript может повысить качество, производительность и обслуживание проекта, обеспечивая согласованность и измеримость результатов, рекомендуется перейти на него. Однако этот переход следует осуществлять только в том случае, если существует полная приверженность 100% внедрению без каких-либо оправданий. В противном случае, возможно, лучше воздержаться от переключения.