TypeScript 2.0 уже доступный!

TypeScript

Сегодня мы рады объявить о финальной версии TypeScript 2.0!

Команда преодолела большой путь до для релиза TypeScript 2.0, с помощью сообщества и партнеров. В данную версию добавили несколько новых функций, которые повышают производительность разработчиков, достижения согласованности TypeScript’s с эволюцией ECMAScript, предоставляет широкую поддержку библиотек и инструментов JavaScript, и дополняет языковую службу этой способности начального класса редактирования через опит различных инструментов.

Чтобы приступить к работе, вы можете скачать TypeScript 2.0 для Visual Studio 2015 (который должен быть Update 3), возьмите его с NuGet, начать использовать TypeScript 2.0 в Visual Studio Code, или установить его с npm:

npm install -g typescript@2.0

Для пользователей Visual Studio "15" Preview, TypeScript 2.0 будет включена в следующий релиз Preview.

Путешествие до 2.0

Пару лет назад мы отправились в это путешествие до версии 2.0.TypeScript 1.0 успешно показал разработчикам потенциал JavaScript в сочетании со статическими типами.Проверка ошибок во время компиляции сохраняются бесчисленное количество часов на поиски ошибок в коде, и TypeScript’s редактор инструментов дал возможность разработчикам увеличить производительность и возможность все больше ы больше строить приложения на JavaScript.Однако, чтобы быть полным надстройкой из самых популярных и широко распространенный язык в мире, TypeScript все еще растет чтобы сделать это.

TypeScript 1.1 принес новый, полностью переписанный компилятор, который увеличивает производительность в 4 раза. Это новое ядро ??компилятора позволил большую гибкость, более быстрый итерации, и при условии, базовый уровень производительности для будущих релизов.Примерно в то же время, репозиторий TypeScript переместился в GitHub для поощрения участия людей и обеспечить лучшую платформу для совместной работы

TS 1.4 & 1.5 введен большой объемподдержки ES2015 / ES6с целью согласования с будущим языка JavaScript.Кроме того, TypeScript’s 1.5 введена поддержка модулей и декораторов, позволяяAngular 2, принять TypeScript’sи сотрудничать с нами в эволюции TypeScript’s для своих нужд.

TypeScript 1.6 – 1.8 принесли значительные доработки системных типов, с каждым новым выпуском появляются дополнительные шаблоны JavaScript и обеспечения поддержки крупных библиотек JavaScript.Эти релизы также поддерживают округление ES* и прокачки компилятора с более продвинутыми вне коробочной версии проверки ошибок.

Сегодня мы рады выпустить версию 2.0 языка TypeScript’s.С этим релизом, TypeScript обеспечивает тесную связь с ECMAScript спецификациями, широкую поддержку библиотек и инструментов для JavaScript, и способности сервисного языка базового класса взаимодействовать в основных редакторах; все собрались вместе, чтобы обеспечить возможности еще более продуктивной и масштабируемой разработки на JavaScript.

Сообщество TypeScript’s

Так как 1,0, TypeScript вырос не только как язык, но и в качестве сообщество единомышленников.Только в прошлом месяце, TypeScript имел более 2 миллионов загрузок npm по сравнению только 275 тыс в том же месяце прошлого года.Кроме того, у нас было огромное количество принятых TypeScript’s ночных сборок с участием более 2000 пользователей, участвующих в обсуждении в GitHub и 1500 зарегистрированных пользовательских запросов.Мы также приняли PRs от 150 пользователей, начиная от исправления ошибок до прототипов и основных функций.

DefinitelyTypedявляется еще одним примером нашего сообщества которое идет выше, и за его пределы.Начав свою деятельность в качестве небольшого репозитория декларирования файлов (набор правил форматирования библиотек JS для TypeScript’s), теперь содержит более 2000 библиотек, которые были написаны 2500 индивидуальными участниками.В настоящее время крупнейшим формальное описание библиотек JavaScript, что мы знаем.Путем создания DefinitelyTyped, TypeScript’s сообщество не только поддерживает использование TypeScript с существующими библиотеками JavaScript, но и более четко определить наше понимание всего кода JavaScript.

Сообщества TypeScript’s и JavaScript сыграли важную роль в успехе, которого TypeScript достиг на даный момент, и возможно Вы способствовали, твитами, тестированием, подачей вопросов, или использовать TypeScript в ваших проектах, мы благодарны за вашу неизменную поддержку!

Больше 2 миллионов загрузок в npm

Что нового в TypeScript 2.0?

TypeScript 2.0 предоставляет ряд новых возможностей по сравнению с выпуском 1.8, некоторые из которых мы подробно описали в 2.0 Beta и Release Candidate сообщениях в блоге.Ниже приведены основные моменты главных функций, которые теперь доступны в TypeScript’s, но вы можете прочитать о tagged unions, новый never typethis types для функций, глобальна поддержка в tsconfig, и все другие новые возможностина наших справочниках.

Упрощенная декларация файла (.d.ts) Поглощение

Типизации и tsd были фантастическими инструментами для экосистемы TypeScript’s.До сих пор эти менеджеры пакетов помогли пользователям получать .d.ts файлы из DefinitelyTyped в свои проекты как можно быстрее.Несмотря на эти инструменты, один из самых больших недостатков для новых пользователей было научиться получать и управлять зависимостями деклараций файлов из этих менеджеров пакетов.

Получение и использование деклараций файлов в 2.0 гораздо проще.Чтобы получить декларирование для библиотеки как lodash, все, что вам нужно, это npm:

npm install -s @types/lodash

Приведенная выше команда устанавливает Scoped пакет@types/lodashкоторый TypeScript 2.0 будет автоматически ссылаться при импортеlodashгде - нибудь в вашей программе.Это означает, что вам не нужны никакие дополнительные инструменты и ваши .d.tsфайлы могут путешествовать с остальной частью ваших зависимостей в вашемpackage.json.

Стоит отметить, что оба типизации и tsd будет продолжать работать на существующих проектах, однако 2.0-совместимые декларации файлы не могут быть доступны через эти инструменты.Таким образом, мы настоятельно рекомендуем перейти на новый рабочий процесс npm для TypeScript 2.0 и за его пределами.

Мы хотели бы поблагодарить Blake Embrey за его работу по типизации и помогая нам довести это решение до конца.

Ненулевые Типы

JavaScript имеет два значения для "пустоты" -nullиundefined.Еслиnullявляетсямиллиард долларовой ошибкой,undefined удваивается только наши потери.Эти два значения являются огромным источником ошибок в мире JavaScript, так как пользователи часто забывают учитывать значениеnullилиundefined, возвращаемых из API.

TypeScript первоначально начинался с идеей, что типы всегда были нулевыми.Это означало, что числовой типтакже может иметь значениеnullилиundefined.К сожалению, это не обеспечивает никакой защиты отnull/undefinedпроблем.

В TypeScript 2.0,nullиundefinedимеют свои собственные типы, которые позволяют разработчикам явно указать, когдаnull/undefinedзначения являются приемлемыми.Теперь, когда что - то может быть number илиnull, вы можете описать в объединённомтипом number | nullnumber | null(который читает как "число или нуль").

Потому что это критическое изменение, мы добавили--strictNullChecksрежим, чтобы включить такое поведение.Однако, забегая в перед, это будет основная рекомендация чтобы включить эту возможность, которая поможет ловить широкий ассортимент null/undefinedошибок.Чтобы узнать больше о ненулевых типах, проверьтеPR на GitHub.

Управление потоком исследуемых типов

TypeScript имел анализ потока управления, до 1.8, но, начиная с версии 2.0 мы расширили его для анализа еще больше потоков управления, для получения конкретного типа в любой момент.В сочетании с ненулевыми типами, TypeScript теперь может сделать гораздо более сложные проверки, как и анализ определенного присваивания.

function f(condition: boolean) {
    let result: number;
    if (condition) {
        result = computeImportantStuff();
    }

    // Whoops! 'result' might never have been initialized!
    return result;
}

Мы бы хотели поблагодарить Ivo Gabe de Wolff за вклад первоначальную работу и оказывает существенную поддержку этой функции. Вы можете прочитать больше о анализе потока управления на самом PR.

Модификатор readonly

Неизменное программирование в TypeScript’s стало еще проще.Запуская TypeScript 2.0, вы можете объявить свойства, как «только для чтения».

class Person {
    readonly name: string;

    constructor(name: string) {
        if (name.length < 1) {
            throw new Error("Empty name!");
        }

        this.name = name;
    }
}

// Error! 'name' is read-only.
new Person("Daniel").name = "Dan";

Любой метод доступа Get без Set также считается только для чтения сейчас.

Что дальше

TypeScript является весами JavaScript.Начиная с того же синтаксиса и семантики, которые знают сегодня миллионы JavaScript разработчиков, TypeScript позволяет разработчикам использовать существующий код JavaScript, включают популярные библиотеки JavaScript, и вызывать код TypeScript’s из JavaScript.Дополнительные статические типы TypeScript’s позволяют разработчикам JavaScript используя высокопродуктивные инструменты, как статическая проверка и рефакторинг кода при разработке JavaScript приложений.

Забегая в перед, мы будем продолжать работать с нашими партнёрами и сообществом чтобы развивать системные типы TypeScript’s для возможности позволить пользователям в дальнейшем выражать JavaScript в статическую типизированную модель. Кроме того, мы сфокусируемся в совершенствование TypeScript языкового сервиса и возможности набора инструментов, таким образом эти инструменты разработки становились умнее и в дальнейшем повышали продуктивность разработчика.

Если Вы покакойто причине еще не пробовали использовать TypeScript, попробуйте это сейчас

Данная статья является переводом, оригинальный текст Вы можете прочитать здесь

Автор перевода: Grygorii Shkliaruk

Автор оригинала: Daniel Rosenwasser

P.S. Данная статья является первой статьей которую я сам перевел, так что прошу сильно не ругать, все замечание прошу оставлять в коментарии.

Только авторизованные пользователи могут оставлять комментарии

Чтобы оставить комментарий Вам нужно Зарегистрироваться или Войти в систему