Финальная версия 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
Поддержка других редакторов появится позднее.