Почему вам стоит изучить язык программирования TypeScript?
Меня зовут Сергей Отморский, я ведущий разработчик барнаульского офиса компании Usetech. Имею более 10 лет опыта работы в качестве ИТ-разработчика, включая разработку полного стека и глубокие знания в области. технологий .NET. В этой небольшой статье я выделил основные моменты, которые должны перевесить чашу весов в сторону TypeScript при выборе языка программирования.
1. TypeScript очень прост
Я прочитал весь handbook за один вечер и уже на следующий день начал использовать TypeScript в новом проекте. TypeScript компилируется в EcmaScipt/JavaScript, но добавляет проверки кода на ошибки ещё до выполнения. Поэтому изучение JavaScript через TypeScript (TS) будет происходить быстрее, чем изучение самого JavaScript.
2. Переход с JS на TS делает жизнь проще
Грубые ошибки, сделанные в процессе модификации кода, видны сразу, а не во время выполнения. Особенно это помогает с теми участками кода, которые выполняются при соблюдении хитрых условий. Никаких больше ‘X’ is not a function.
Когда много лет назад мне предложили помочь с какими-нибудь простыми задачами frontend-команде, я не представлял какой это кошмар модифицировать JS код. Добавил параметр в функцию, но не заметил один из вызовов?! Узнаёшь об этом только когда начнешь выполнять код. Если повезёт, конечно. Вызов, может быть, внутри хитрого if выражения или вообще притворяться что так и надо. Если таких ошибок несколько и подряд, то, в лучшем случае, удастся поймать первую из них и проверять сначала. Хоть я и люблю разнообразие, но от JS задач я начал отказываться.
С TS все совсем наоборот, мне даже нравится. Код, затронутый модификациями, виден сразу в среде разработки, больше не надо внимательно самому вглядываться.
3. Универсальность
На TypeScript можно программировать почти всё что угодно: мобильные и десктоп приложения, бек и фронт части веб-сервисов.
4. Академический интерес
Несмотря на свою простоту, TypeScript позволяет делать удивительные вещи. Например, написать генератор типов, который может найти выход из лабиринта на этапе компиляции https://github.com/ronami/meta-typing.
5. Экосистема
У JS/TS огромное комьюнити. Существует много готовых открытых решений: поддержка, мемасы. В TS можно использовать JS код и можно объяснить TS как ведет себя JS код, добавив type definitions. Для многих популярных JS-only библиотек уже существуют type definitions https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types
6. Удобство
Своя удобная песочница, в которой можно протестировать в какой JS превращается TS. На https://www.typescriptlang.org/play можно попробовать написать и запустить TS код прямо из браузера, ничего не настраивая у себя локально
7. Может пригодиться и в повседневной жизни
На любой странице в веб-браузере можно выполнять свой JS код, а значит, можно заскриптовать какие-нибудь рутинные действия на сайте или даже исправить неработающий функционал.
Однажды меня спросили, могу ли я набрать максимальную скидку в магазине. Размер скидки зависел от результата мини-игры, в которой человечек ползет вверх по веревке если кликнуть мышкой, и сползает вниз постоянно.
F12 ->
var clicksNumber = 1000000;
var element = $0;
var click = () => setTimeout(() => { element.click(); clicksNumber--; if(clicksNumber > 0) { click() } });
click()
Человечек взлетел так высоко что пробил монитор, потолок и улетел в открытый космос?
8. Хорошая система вывода типов
type foo = {
t: 'foo',
value: number
}
type bar = {
t: 'bar',
value: number[]
}
function fizz(bazz: foo | bar) {
if(bazz.t === 'bar') {
bazz.value.length// <- Вот тут TS поймет что тип value - массив чисел из-за условия выше.
}
}
9. Зачастую новые возможности JS доступны в TS раньше, чем в самом JavaScript
Возможно, после прочтения этого небольшого обзора вы согласитесь, что TypeScript удобен, прост и интересен для изучения, особенно если вы только начинаете свой пусть в программировании.