JavaScript vs. TypeScript
Прежде чем углубиться в различия давайте немного разберёмся в обоих языках.
JavaScript (часто сокращаемый как JS) — это лёгкий, интерпретируемый, кроссплатформенный, объектно-ориентированный язык сценариев, соответствующий спецификации ECMAScript и используется для создания интерактивных веб-страниц. JavaScript используется как на стороне клиента, так и на стороне сервера, что позволяет программистам создавать веб-страницы.
TypeScript (часто сокращаемый как TS) — это язык программирования, разработанный и поддерживаемый корпорацией Майкрософт. Это строго типизированное надмножество JavaScript, кросс-платформенный, объектно-ориентированный, компилируемый в обычный JavaScript, и используемый для создания интерактивных веб-страниц.
Когда у нас есть JavaScript используемый как на стороне клиента, так и на стороне сервера, то зачем нам нужен TypeScript?
Как мы знаем, по разработке Nodejs, JavaScript стал более популярным, чем раньше, благодаря серверной и клиентский веб-разработке. Однако, когда JavaScript рос, код написанный на нём становился всё более запутанным и становилось сложно осуществлять поддержку кода. Он не мог удовлетворить потребность в объектно-ориентированном программировании. Эти недостатки препятствовали успешному использованию JavaScript на уровне промышленном в качестве серверной технологии. После этого появляется TypeScript, что бы восполнить этот пробел.
Различия между JavaScript и TypeScript
TypeScript — это объектно-ориентированный язык программирования, в то время как JavaScript — это объектно-ориентированный язык сценариев
- Объектно-ориентированные языки программирования основаны на объектах, тогда как языки сценариев состоят из сценариев для автоматизации какой-либо функции/действия.
- Языки сценариев не нуждаются в этапе компиляции и в основном интерпретируются.
- TypeScript всегда обращает внимание на ошибки в период разработке, но JavaScript выделяет их во время выполнения.
TypeScript поддерживает статическую типизацию, в то время как JavaScript имеет динамическую типизацию
- JavaScript присваивает тип любой переменной во время выполнения (динамически типизирует)
- TypeScript предоставляет возможность статической типизации, тип переменной декларируется при написании кода. Например
в JavaScript:
let name_ ="JavaScript";
console.log("name variable is inferred as string",names);
name_=45;
console.log("name variable is inferred as number ",names);
в TypeScript:
let name_ = "TypeScript";
console.log("name variable is inferred as string",name_);
name_=45; // throw error "Type 'number' is not assignable to type 'string' "
- Когда язык программирования не типизирован статически, он более подвержен ошибкам периода выполнения
TypeScript поддерживает интерфейс, а JavaScript — нет
- Будучи объектно-ориентированным языком программирования, TypeScript поддерживает такие концепции ООП, как интерфейсы, классы, наследование, обобщения (так же известные как шаблоны и дженерики) и т.д.
TypeScript даёт множество преимуществ по сравнению с JavaScript, например, он позволяет упростить управление кодом, повышает производительность команды за счёт явно определённой структуры данных, а аннотации типа переменных значительно упрощают понимание решений принятых другими инженерами, первоначально работавшими над вашей кодовой базой. TypeScript становится популярным и принимается гигантами индустрии.
TypeScript — это потрясающий инструмент для JavaScript разработчиков. Он облегчает понимание большой кодовой базы, а так же предоставляет прекрасный инструментарий для написания кода.
На этом пока всё, спасибо за внимание.