TypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
5. Достоинства CoffeeScript
— Классы
— Стрелочные функции, сохранение контекста (=>, ->)
— Безопасные сравнения === меньше ошибок
— Краткость
— ... и много чего другого
5
6. Почему не CoffeeScript?
— Это другой язык
— Краткость не всегда сестра таланта. Иногда брат Морзе
— Приходится уметь работать с 2мя языками
— Если вдруг прекратится поддержка, что делать?
— Есть проблемы с поиском разработчиков
6
10. Мифы о TypeScript
1. Это другой язык, как и CoffeeScript
2. Закрытый исходный код
3. Разрабатывать можно только в VisualStudio
4. Корректно работает только с Windows
5. Генерит лишний код
6. Медленный
10
11. Это другой язык, как и CoffeeScript
let say = (def:string):string => `TypeScript is ${def}!`;
say('pretty amazing')
11
13. Разрабатывать можно только в Visual
Studio
IDE supports
— ★ WebStorm, PhpStorm, ...
— ☆ Sublime Text (2,3)
— Atom (atom.io)
— TypeEcs for Eclips (typecsdev.com)
— MS Visual Studi☺
13
15. Генерит лишний код
var say = (def:string):string => `TypeScript is ${def}!`;
say('pretty amazing');
15
16. Генерит лишний код
var say = (def:string):string => `TypeScript is ${def}!`;
say('pretty amazing');
Результат:
var say = function (def) { return ("TypeScript is " + def + "!"); };
say('pretty amazing');
16
17. Тот же результат на CoffeeScript
(function() {
var say;
say = (function(_this) {
return function(def) {
return "TypeScript is " + def + "!";
};
})(this);
say('pretty amazing');
}).call(this);
17
18. var gvstr;
var _this = this; // Babel делает так же
var say = function (def) {
return _this.gvstr = "T..." + def + "!"
};
say('pretty amazing');
(function() {
var say;
say = (function(_this) {
return function(def) {
return "T..." + def + "!";
};
})(this);
say('pretty amazing');
}).call(this);
TypeScript vs CoffeeScript. Результат компиляции
18
52. TypeScript vs Babel
— TypeScript — это Babel + Flow
— Babel — это TypeScript без проверки типов
52
53. Выбираем Flow если ...
— ... хочется JSX
— ... хочется Babel JS, но не хочется MS TS
53
54. Что нравится в Flow
— Режимы типизации
— Проверка типов без указания
— Возможность явно указать типы как в TypeScript
— Нативная поддержка JSX
54
55. Что не нравится в Flow
— Официально поддерживаются платформы: Mac, Linux, Windows
— Распространяется в виде бинарника
— Нет (не было) хорошей поддержки в IDE
55
57. Почему нам нравится TypeScript
— Пишем на ES6+
— Типизация защищает от опечаток и ошибок
— Возможность описывать интерфейсы
— Инструменты для реализации ООП
— Бекендеры понимают наш код!
— Возможность управлять AMD
— Активное развитие и поддержка от MS. Уже доступен TS 1.5 beta
57