TypeScript (TS, TScript или «тайпскрипт») — это язык программирования для веб-разработки, основанный на JavaScript. Делает код понятнее и надежнее, добавляет статическую типизацию (переменные привязаны к конкретным типам данных), а также может быть скомпилирован в JavaScript. TypeScript используют фронтенд- и бэкенд-разработчики.
Отличия TypeScript от JavaScript
Строгая типизация
Данные в JS хранятся в переменных и имеют какой-либо тип: строка, число, логическое значение. В JavaScript нестрогая, динамическая типизация. Это значит, что одной переменной можно присвоить сначала числовое значение, а потом, например, текстовое.
TypeScript добавляет в язык строгую типизацию. Каждой переменной при создании присваивается определенный тип (type) — стандартный или созданный самим разработчиком. Создать тип можно в пределах возможностей языка: например, число от 1 до 31 для записи дня в месяц или массив из двух элементов для записи координат.
Что такое «переменной присваивается тип»? Это значит, что на протяжении всего скрипта она сможет принимать только значения в рамках этого типа. Переменная, заданная как число, будет только числом. Если попытаться присвоить ей строковое значение, программа выдаст ошибку.
Помимо примитивных типов, уже существующих в JavaScript, — boolean, bigint, null, number, string, symbol, object и undefined, — TypeScript имеет уже знакомые нам типы any (разрешает использовать любое значение) и void (тип для функций, которые ничего не возвращают, у них нет return).
Объектно-ориентированный подход
ООП, или объектно-ориентированный подход, рассматривает информацию, с которой работает, как классы (classes) и объекты (objects). Объект — это сложный экземпляр данных, а класс — «чертеж» или «каркас», на основании которого создаются объекты. Объект имеет класс, так же как переменная имеет тип.
В JavaScript есть возможности, которые позволяют реализовать ООП, но только частично. Язык поддерживает классы и объекты, и этого достаточно для базовых действий. Но, например, он не работает с модификаторами доступа — так называют возможность сделать какую-то часть класса «открытой» или «закрытой» для доступа со стороны.
TypeScript поддерживает три модификатора:
- Public — элементы с этим модификатором доступны отовсюду без каких-либо ограничений. Этот модификатор установлен по умолчанию.
- Private — элементы с этим модификатором доступны только из того класса, в котором они определены.
- Protected — элементы с этим модификатором доступны из класса, в котором они определены, и в подклассах/производных классах.
TypeScript добавляет в JS множество возможностей ООП: и модификаторы доступа, и абстрактные классы, и другие особенности подхода.
Высокая скорость работы над проектом
TypeScript помогает сократить время на выявление и устранение багов, которые иногда сложно найти в динамической среде JavaScript. С помощью TypeScript можно написать более понятный и читаемый код, который максимально описывает предметную область. Таким образом архитектура становится более выраженной.
Как работает TypeScript
Код, написанный на TypeScript, не выполнится напрямую в браузере. Поэтому TS — не самостоятельный язык, а именно языковая надстройка над JS. Для его работы нужен дополнительный этап — транспиляция, когда программное обеспечение преобразует написанный на TypeScript код в «чистый» JavaScript.
JS не требует установки в систему: его по умолчанию поддерживает любой браузер. А вот TypeScript понадобится установить, потому что для транспиляции необходим модуль tsc. Установите Node.JS и загрузите пакет для программирования на TypeScript через менеджер NPM:
npm install -g typescript
После написания программы на TypeScript вы получите файл с расширением .ts. Его нужно будет скомпилировать и преобразовать в JS с помощью модуля tsc. Это делается через консоль:
tsc file_example.ts
Пример кода
const getUsers = (): ThunkAction<void, {}, {}, AnyAction> =>
async (dispatch: ThunkDispatch<{}, {}, AnyAction>) => {
//…
try {
const users: User[] = await APIService.get(‘/users’)
dispatch(successGetUsers(users))
} catch(err) {
dispatch(failedGetUsers(err))
}
}
Попробовать написать и запустить код на TypeScript можно прямо из браузера на этой странице, без локальных настроек.
Плюсы TypeScript
- Ошибки, допущенные в процессе модификации кода, видны сразу, а не во время выполнения.
- В TypeScript есть интерфейсы и классы.
- Создатель — Андерс Хейлсберг, который также разработал C#, Turbo Pascal и Delphi.
- Имеет открытый исходный код, доступный на GitHub.
- TypeScript позволяет быстрее и проще писать комплексные решения, которые в дальнейшем будет легче развивать и тестировать.
- Язык прост в изучении. Есть множество мануалов.
- TypeScript имеет высокую скорость компиляции и распространяется по лицензии Apache.
Минусы TypeScript
- Невозможно типизировать ошибки, появившиеся в режиме реального времени.
- Не все браузеры поддерживают вкладку TypeScript в консоли, что приводит к большим временным затратам.
- TypeScript имеет множество нетривиальных классов.
- Несмотря на статическую типизацию, можно допустить прохождение любого типа данных, прописав слово any.
0 комментариев