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). 

Начните свой путь в IT

Попробуйте себя в программировании, аналитике данных, Data Science и других востребованных специальностях — получите все курсы для входа в IT по цене одного.

Узнать подробности

Объектно-ориентированный подход

ООП, или объектно-ориентированный подход, рассматривает информацию, с которой работает, как классы (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.  
  5. Профессия

    Веб-разработчик с нуля

    За 12 месяцев вы освоите базовую верстку, frontend и backend. В конце обучения у вас будет готовое портфолио из проектов.

    • тренажеры по HTML, CSS, JavaScript, PHP, SQL, React;
    • выбор направления: frontend, backend или fullstack;
    • консультации в Центре карьеры.

    Узнать больше

     

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

Tableau
TensorFlow

Все термины

Курсы по теме

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