Andrey on .NET | Доступен TypeScript 2.5

Доступен TypeScript 2.5

TypeScript logoФинальная версия TypeScript 2.5 стала доступна для загрузки. В этот раз улучшения языка затронули работу с типами и синтаксис catch. Но кроме этого изменения не обошли стороной и редакторы, добавив в них пару полезных возможностей.

Что нового?

Рефакторинг: Extract Function и Extract Method

Visual Studio Code теперь может автоматизировать 2 типа рефакторинга: выделение метода и выделение функции из кода (аналогично подобному р факторингу в C#).

Быстрые правки

Еще одна новая возможность редактора - быстрые правки.

  • при указании типа в стиле JSDoc редактор подскажет как задать его правильно. Например: "number?" будет предложено исправить на "number | null | undefined".
  • вариант исправления код будет также предложен в случае, если свойство объекта было адресовано не корректно. В примере ниже Foo["bar"] будет предложено заменить на Foo.bar:
interface Foo { bar: number; }

var f: Foo["bar"] // должно быть Foo.bar

Указание типов выражений в стиле JSDoc

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

var foo = Math.random() ? "hello" : 100;
 
foo.toUpperCase();
//  ~~~~~~~~~~~
//  Error! Property 'toUpperCase' does not exist on type 'string | number'.

Однако, можно указать тип явно, используя следующий синтаксис:

/** @type {YOUR_TYPE_HERE} */ (someParenthesizedExpression).

Таким образом вот такой код будет скомпилирован (разумеется это не помешает ему выкинуть исключение, когда результатом будет число):

var foo = Math.random() ? "hello" : 100;
var bar = /** @type {string} */ (foo);
bar.toUpperCase();

Необходимо отметить, что это данная операция не является приведением типов.

Необязательные параметры catch

Теперь можно не указывать параметр для catch, если он не используется. Синтаксис:

try {
    ...
}
catch {
    ...
}

Новый флаг компилятора: --preserveSymlinks

Новый флаг работает аналогично флагу --preserve-symlinks в Node.js. Он указывает на необходимость сохранения символьных ссылок при обработке модулей (по умолчанию ссылки заменяются на полный путь).

Повторные и перенаправленные пакеты

Компилятор теперь умеет производить проверку не принадлежат ли файлы одинаковым пакетам. И если у файла есть аналог из пакета, указанного в package.json и имеющего такие же имя и номер версии, то будет использован вариант из package.json.

Как скачать?

В данный момент для загрузки доступны следующие варианты TypeScript 2.5:

npm install -g typescript@2.0

Поддержка других редакторов появится позднее.

Добавить комментарий