TypeScript

TypeScript (TS, TScript или «тайпскрипт») — это язык программирования для веб-разработки, основанный на JavaScript. Делает код понятнее и надежнее, добавляет статическую типизацию (переменные привязаны к конкретным типам данных), а также может быть скомпилирован в JavaScript. TypeScript используют фронтенд- и бэкенд-разработчики.

Логотип TScript

Отличия 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

Подробнее про Node.JS и ее возможности можно прочитать в этой статье.

После написания программы на 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

  1. Ошибки, допущенные в процессе модификации кода, видны сразу, а не во время выполнения.
  2. В TypeScript есть интерфейсы и классы.
  3. Создатель — Андерс Хейлсберг, который также разработал C#, Turbo Pascal и Delphi.
  4. Имеет открытый исходный код, доступный на GitHub.
  5. TypeScript позволяет быстрее и проще писать комплексные решения, которые в дальнейшем будет легче развивать и тестировать.
  6. Язык прост в изучении. Есть множество мануалов.
  7. TypeScript имеет высокую скорость компиляции и распространяется по лицензии Apache.

Минусы TypeScript

  1. Невозможно типизировать ошибки, появившиеся в режиме реального времени.
  2. Не все браузеры поддерживают вкладку TypeScript в консоли, что приводит к большим временным затратам.
  3. TypeScript имеет множество нетривиальных классов.
  4. Несмотря на статическую типизацию, можно допустить прохождение любого типа данных, прописав слово any.  

Другие термины на букву «T»

Tableau
TensorFlow

Все термины

Освойте новую профессию

(рейтинг: 5, голосов: 1)
Добавить комментарий