Как вы знаете, вчера вечером состоялся релиз Visual Studio 2015. Одновременно Microsoft представила финальную версию TypeScript 1.5, включив его в состав новой Visual Studio. Также его можно скачать отдельно для предыдущих версий VS или же установить с помощью npm. Под катом — краткий список что интересного в новом релизе.
Microsoft хочет сделать TypeScript обратно совместимым с ES6, и в каждом новом релизе планомерно добавляет синтаксис нового стандарта. Версия 1.5 особо богата нововведениями: ES6-синтаксис для модулей, destructuring, оператор троеточия, итерация с помощью for...of, символы, computed properties, поддержка let/const и шаблонизация строк. Шаблонизация строк, Карл!
Кроме поддержки ES6 синтаксиса для модулей, добавлена компиляция в два новых формата загрузки модулей: SystemJS и UMD. Вместе с уже поддерживаемыми CommonJS и AMD это дает возможность выбрать для создаваемого кода один из четырех вариантов загрузки модулей.
Также команда разработчиков переименовала internal modules в «namespaces», так что «typescript module» и «typescript external module» теперь одно и то же. Говорят, новые разработчики жаловались и путались.
Позволяет задать список файлов для компиляции и настройки компилятора.
Стандарт ES7 стабилизируется еще не скоро, но в TypeScript уже можно использовать новый синтаксис декораторов, правда в экспериментальном режиме:
Частичная поддержка синтаксиса ES6
Microsoft хочет сделать TypeScript обратно совместимым с ES6, и в каждом новом релизе планомерно добавляет синтаксис нового стандарта. Версия 1.5 особо богата нововведениями: ES6-синтаксис для модулей, destructuring, оператор троеточия, итерация с помощью for...of, символы, computed properties, поддержка let/const и шаблонизация строк. Шаблонизация строк, Карл!
Улучшения системы модулей
Кроме поддержки ES6 синтаксиса для модулей, добавлена компиляция в два новых формата загрузки модулей: SystemJS и UMD. Вместе с уже поддерживаемыми CommonJS и AMD это дает возможность выбрать для создаваемого кода один из четырех вариантов загрузки модулей.
// math.ts
export function add(x, y) { return x + y }
export function subtract(x, y) { return x – y }
export default function multiply(x, y) { return x * y }
// myFile.ts
import {add, subtract} from "math";
import times from "math";
var result = times(add(2, 3), subtract(5, 3));
Также команда разработчиков переименовала internal modules в «namespaces», так что «typescript module» и «typescript external module» теперь одно и то же. Говорят, новые разработчики жаловались и путались.
Конфигурационный файл tsconfig.json
Позволяет задать список файлов для компиляции и настройки компилятора.
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "../../built/local/tsc.js",
"sourceMap": true
},
"files": [
"core.ts",
"sys.ts",
"types.ts",
"scanner.ts"
]
}
ES7 Декораторы
Стандарт ES7 стабилизируется еще не скоро, но в TypeScript уже можно использовать новый синтаксис декораторов, правда в экспериментальном режиме:
import {Component, View, NgFor, bootstrap} from "angular2/angular2";
import {loadFile} from "audioFile";
import {displayAudioFile} from "displayAudio";
@Component({selector: 'file-list'})
@View({template: `
<select id="fileSelect" size="5">
<option *ng-for="#item of items; #i = index"
[selected]="selected === item"(click)="updateSelection()">{{ item }}</option>
</select>`,
directives: [NgFor]
})
class MyDisplay {
items: string[];
constructor() {
this.items = ["item1", "item2"];
}
updateSelection() { … }
}