JavaScript - это де-факто язык программирования, необходимый для интерфейсной разработки. Он существует с 1995 года и продолжает развиваться. После запуска Node.js в 2009 году мы смогли использовать JavaScript для внутреннего и общего программирования вне веб-браузера. В наши дни в Интернете работают версии почти всех типов программного обеспечения, а это значит, что всем нужно использовать JavaScript.

В чем проблема?

Вот в чем проблема: чем больше становится ваша кодовая база JS, тем она сложнее, что усложняет обслуживание и повторное использование кодовой базы. Еще одна проблема заключается в отсутствии поддержки объектно-ориентированного программирования. Это одна из первых концепций, которую изучает программист, но классы были добавлены в JavaScript только недавно. Одна из наиболее важных функций, обеспечивающих ремонтопригодность и возможность повторного использования кода, проверка типов также недоступна.

Обратите внимание, что в JavaScript можно использовать некоторые концепции ООП, но все они требуют некоторого обходного пути, чтобы действительно работать.

Входит TypeScript

TypeScript был создан Андерсом Хейлсбергом (разработчиком C #) в Microsoft для борьбы со всеми этими проблемами с помощью JavaScript, сохраняя при этом целостность самого языка. TypeScript - это типизированный надмножество JavaScript, скомпилированного в JavaScript. Это означает, что на самом деле мы не запускаем TypeScript, его нужно скомпилировать в JavaScript, который затем запускается поверх Node или браузера. Нам просто не нужно создавать собственные хаки в JavaScript для поддержки основных концепций, таких как интерфейсы, классы или проверки типов, если на то пошло.

Для сравнения создадим класс под названием Book.

JavaScript

Машинопись

Когда мы скомпилируем код TypeScript, мы получим что-то похожее на код JavaScript, написанный выше. Но когда мы воспользуемся кодом, мы увидим разницу.

// calling constructor without parameters will work perfectly fine                // in JavaScript, calling .read() will throw runtime error in 
// console because this.pages will be undefined.
let book = new Book();

Но TypeScript сообщит вам, когда вы допустили подобные ошибки.

Это был очень маленький пример. Представьте себе, что у вас ежедневно работают сотни таких классов. Чтобы использовать все эффективно, программист должен прочитать весь исходный код. Но с TypeScript мы можем повторно использовать нужные нам части кода, не беспокоясь об этих простых ошибках, при условии, что аннотации типов сделаны правильно.

Узнайте больше о TypeScript здесь https://www.typescriptlang.org/