Кто такой Type Script? - Блог ITVDN
ITVDN: курсы программирования
Видеокурсы по
программированию

Заказать звонок

Выбери свою IT специальность

Подписка

Заказать звонок

+38 099 757 27 82

Кто такой Type Script?

advertisement advertisement

Введение

Сегодня уже никого не удивишь выходом очередной новой технологии. Уж у нее точно будет та самая кнопка «Сделать все красиво за меня» и уж точно она будет работать как следует. Пользователи уже сравнительно спокойно относятся к выходу новых фреймворков и их освоению. Более того, даже с некоторой осторожностью. Где гарантия, что новенький всеумеющий фреймворк в обычный вторник через год не перестанут поддерживать, так как он не нашел своей широкой реализации и нужного комьюнити?


Если объективно оценивать ситуацию, то Java Script победил. На сегодняшний день это самый кроссплатформенный язык. Его можно спокойно разместить как внутри страницы

    <script type="application/javascript">

        alert('Hello, World!');

    script>

Так и внутри тега

    <a href="delete.php" onclick="return confirm('Вы уверены?');">

        Удалить

    a>Более 

Более того, можно вынести в отдельный файл

<head>

    <script type="application/javascript" src="http://Путь_к_файлу_со_скриптом">

    script>

head>

Он отлично себя чувствует как на стороне клиента (браузер), так и на стороне сервера. И все равно, какую платформу использует клиент. Что уже говорить о браузерных операционных системах. В IndraDesktop WebOS программный код на 75 % состоит из JavaScript, IntOS — на 70 %, eyeOS — 5 %, но в eyeOS JavaScript участвует в визуализации на клиенте, что очень важно для отлаженной работы между клиентом и сервером.

Все Вы слышали о языке Java Script, а кто-то из Ваших друзей может внятно объяснить, что за ЯП такой Type Script? Кто создатель языка, какие особенности языка? Все очень просто. Человек, имея опыт создания Turbo Pascal, Delphi и даже С#, решил создать что-то еще лучше. Имя ему Андерс Хейлсберг. TypeScript представлен миру в 2012 году компанией Microsoft и был призван расширить возможности JavaScript. Код компилятора TypeScript распространяется лицензией Apache и на данный момент разработка данного языка ведётся в открытом репозитории GitHub.

Имея опыт разработки в строго типизированных языках, многим программистам поведение под кодом JS не всегда является очевидным. А что, если дать языку JS поддержку полноценных классов, статическую типизацию, поддержку подключения модулей? Станет ли код очевидным, облегчит ли это рефакторинг, поиск ошибок еще на этапе разработки? Наверно, с такими мыслями проснулся однажды Хейлсберг. Все это ему удалось реализовать в TypeScript. Видимо, ни для кого уже не секрет, что на выходе из компилятора TypeScript мы получим JS код. Но идея была настолько популярна и востребована, что ИТ сообщество моментом подхватило такую инициативу. Доказательством этого может послужить наличие дополнений для TS в Vim, Emacs и даже в Visual Studio. Более того, вместе с выходом спецификации TS файлы, которые бы помогли понимать статическую типизацию, уже были среди JS-библиотек, среди которых оказался даже jQuery.

Как же быть? TS неявно типизирован и в то же время поддерживает статическую типизацию. Если тип возвращаемого значения не указан, компилятор выберет type inference для вывода типа. Например, если в функцию сложения двух чисел мы передадим 2 типа numbers , то очевидно что возвращаемое значение будет также number

function add(left: number, right: number): number {

    return left + right;

}

Но как раз прописывание возвращаемого значения позволяет компилятору проверить правильность. В случае, если тип не может быть выведен из-за отсутствия объявления типа, тогда по умолчанию будет динамический тип any.

Так же используя компилятор для TypeScript, Вам будет доступна опция создания отдельного файла декларации (тайпинга). Он будет иметь расширение .d.ts. В данном файле останутся только сигнатуры методов. Это напоминает заголовочный файл header в С/С++

declare module arithmetics {
    add(left: number, right: number): number;
    subtract(left: number, right: number): number;
    multiply(left: number, right: number): number;
    divide(left: number, right: number): number;
}

Такие файлы уже написаны за нас как для библиотек JS (таких как jQuery, AngularJS), так и для Node.js, забрать их можно на GITHUB

Резюмируя все вышесказанное, можно сделать вывод, что язык TypeScript будет интересен, понятен и очевиден разработчикам, которые знакомы с объектно-ориентированными подходами, привыкшие к четкому пониманию, какой тип будет ожидаемым на определённом этапе выполнения инструкций. Тем, кто привык рефакторить свой код перед публикацией, а не собирать отзывы от клиента. У этого языка уж точно есть будущее!

КОММЕНТАРИИ И ОБСУЖДЕНИЯ
advertisement advertisement

Покупай подпискус доступом ко всем курсам и сервисам

Библиотека современных IT знаний в удобном формате

Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
59.99 $
Оформить подписку
Премиум Plus
  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
  • Скачивание видео уроков
199.99 $
Оформить подписку
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
89.99 $
Оформить подписку
Notification success