TypeScript і шлях до версії 2.0

var t: [number, string] = [1, "привіт"];
t = []; // Помилка
t = [1]; // Помилка
t = [2, "test"]; // Ok
t = ["test", 2]; // Помилка
t = [2, "test", true]; // Ok

Коли ми випустили TypeScript 1.0 раніше в цьому році, ми були сфокусовані на тому, щоб створити мову, який допоможе розробникам дійсно масштабувати із проекти на JavaScript. Було досить цікаво спостерігати, що люди робили з ним, включаючи 170000 рядків коду Mozilla Shumway, Walmart stationery і наш багатий досвід з Microsoft Azure, в якому ми перестрибнули за мільйон рядків коду.

Наша мета в роботі над TypeScript — продовжувати підтримувати проекти подібного розмаху і зробити його кращим мовою для масштабування JavaScript. З версією 1.1 ми випустили швидкий і легкий компілятор, здатний видавати результат в чотири рази швидше, ніж попередній. Новий компілятор також більш гнучкий щодо додавання нової функціональності, ніж ми неодмінно скористаємося, рухаючись до версії 2.0.

Сьогодні ми хочемо розповісти про наших планах до другої версії. Ми запрошуємо вас приєднатися до нашої сторінці TypeScript на GitHub і допомогти нам зробити TypeScript ще краще.

Зростання спільноти типізації JavaScript
Спільнота типізації JavaScript продовжує зростати, ми раді спостерігати це та бути його частиною. DefinitelyTyped сьогодні містить понад 700 .d.ts типізованих описів для широкого набору бібліотек та фреймворків і наближається до того, щоб подолати планку в 600 контриб'юторів.

Ми також бачимо нові проекти, які виростають на базі роботи, виконаної співтовариством типізації JavaScript. Перший з таких, мова Flow від Facebook, анонсований раніше в цьому році. Він базується на модулях, як фундаментальному будівельному блоці для додатків і додає до них багатий типізований інтерфейс і сумісність з .d.ts. Другий проект, званий AtScript, був недавно анонсований командою Angular в Google. Він базується на анотаціях типів, схожих на TypeScript, і додає анотації мета-даних і перевірки виконання.

Команда TypeScript працює з обома командами (Flow і AtScript) з тим, щоб бути впевненими, що ресурси, вже створені спільнотою типізації JavaScript, можуть бути використані і в цих інструментах. Всі проекти можуть дуже багато чому навчитися один в одного, ми дивимося в майбутнє, щоб працювати разом для створення найкращих інструментів для спільноти JavaScript. У довгостроковій перспективі, ми також прагнемо до того, щоб найкращі можливості цих інструментів увійшли також в ECMAScript, стандарт, що стоїть за JavaScript.

Дорожня карта
TypeScript 1.3
Наш наступний реліз буде TypeScript 1.3, він буде включати новий переписаний мовної сервіс, що дозволяє зробити процес розробки у редакторах коду більш швидким і гладким. Він також буде першим релізом, в якому ми почнемо стандартизацію API компілятора, так що інструменти зможуть на нього покладатися. Як частина цього релізу, ми також покажемо превью нової версії інтеграції в Visual Studio, яка згодом стане її частиною.

З точки зору мови, ми додаємо дві нові функції: protected і кортежів типів (tuple). Модифікатор захищеного доступу досить довго був однією з найбільш часто запитуваних можливостей, ми раді додати в TypeScript додаткові об'єктно-орієнтовані шаблони. З кортежами типів ми починаємо розширювати систему типів, щоб синхронізуватися з практиками, які будуть базуватися на можливості майбутнього ECMAScript 6. Якщо конкретніше, то це дозволить безпечне типів з точки зору використання деструктуризації масивів, розглянутих як кортежі.

Можливо, ви запитуєте: «А де ж TypeScript 1.2?» Ми розраховували використовувати його як релізу для стабілізації попередньої версії, але версія 1.1. виявилося достатньо стабільною, щоб розробники змогли на неї перейти. Це дозволило нам перейти до завершення робіт над мовним сервісом і додавання нових можливостей раніше, ніж ми планували спочатку.

TypeScript 1.4
У релізі 1.4 ми хочемо зосередитися на подальшому розвитку мови. Перші нові можливості вже доступні в майстер-верке на GitHub. Вони включають об'єднання типів і використання typeof в if-блоках для уточнення типів. Обидві можливості показано в прикладі нижче:

function createCustomer(name: { firstName: string; lastName: string } | string) {
if (typeof name === "string") {
// Because of the typeof check in the if, we know name has type string
return { fullName: name };
}
else {
// Since it's not a string, we know name has 
// type { firstName: string; lastName: string }
return { fullName: name.firstName + " " + name.lastName };
}
} 

// Both customers have type { fullName: string }
var customer = createCustomer("John Smith"); 
var customer2 = createCustomer({ firstName: "Samuel", lastName: "Jones" });

Обидві можливості дозволяють використовувати більш природні шаблони при роботі з JavaScript-кодом. Об'єднання типів, дозволяючи більш точно описувати типи з численними варіантами, що також допомагають пом'якшити деякі больові точки ранніх версій TypeScript, що виникали при роботі зі змішаними масивами.

Від TypeScript 1.5 до TypeScript 2.0
Дивлячись у майбутнє на реліз 2.0, ми сфокусовані на двох цілях в додаток до основної мети надати найкращі інструменти для JavaScript-розробки. Перша — це зістикувати з ES6. Синхронізація з ES6 дозволить TypeScript стати надмножеством наступної версії JavaScript, відкриваючи можливість працювати над новими шаблонами і практиками створення коду, включаючи деструктурирование, рядкові шаблони, обіцянки, ітератори та ін. на додаток до тих можливостей, які TypeScript вже підтримує, наприклад, класи і лямбда-функції. Друге — ми також працюємо з командами Flow і Angular, щоб переконатися, що TypeScript — це найкраща мова для роботи з широким набором бібліотек, включаючи декларативні фреймфорки зразок майбутнього релізу Angular 2.0.

Заглядаючи в майбутнє
Попереду багато роботи, але ми вже добре просуваємося за нашим планом. Ви можете спробувати деякі із згаданих вище можливостей, взявши свіжу версію исходников в нашому репозитарії TypeScript на GitHub. Ми взяли для себе стиль GitHub для викладання специфікацій разом з використання pull-запитів. Це дозволить вам відслідковувати нові можливості в міру їх розробки, і ми також будемо раді почути ваші відгуки.

Корисні посилання


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.