Ciklum .NET Saturday - Introduction to TypeScript

780 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
780
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ciklum .NET Saturday - Introduction to TypeScript

  1. 1. ВВЕДЕНИЕ ВTypeScript Дмитрий Миндра LOHIKA, Одесса
  2. 2. Geek and Pokehttp://geekandpoke .typepad.com/
  3. 3. Зачем ? Для построения масштабируемых и поддерживаемых систем Для облегчения поддержки кода TypeScript – строго типизированный язык Полностью совместим с JavaScript и является его надмножеством. Компилируется в JavaScript OpenSource
  4. 4. Node.js С чего начать ? npm install –g typescript tsc source.tsVisual Studio 2012Plugin is available
  5. 5. Расширения файлов*.ts – исходный код TypeScript• *.d.ts – TypeScript definition files
  6. 6. Декларации• TypeScript всего лишь описывает контракты динамических типов, облегчая разработку.• Файлы с декларайиями позволяют описать типы как заголовочные файлы в C++• Intellisense будет корректно давать подсказки• Файлы для DOM и jQuery идут в поставке с TypeScript (lib.d.ts).• Сообщество активно пишет декларации для стандартных библиотек.
  7. 7. Инструментальная поддержка• Статическая проверка типов• Навигация по символам• Intellisense• Рефакторинг
  8. 8. Аннотации типовfunction multiply(a: number, b: number) { return a * b;}• Тип возвращаемого значения будет выведен.• Постфиксная запись :number• Есть опциональные параметры ?:number
  9. 9. ТипыТип Any является общим предком для всех типов иможет хранить любой тип JavaScript без каких-либоограничений.Простые типы:  number  bool  String  null  undefinedОбъекты: Классы, модули, интерфейсы Типизированные массивы var employees : Employee[] = [];
  10. 10. Лямбды() => { console.log(“It’s Saturday!”)}setTimeout(() => { alert(this.message); }, 3000);(x) => { return Math.sin(x); }(x) => Math.sin(x)x => { return Math.sin(x); }x => Math.sin(x)
  11. 11. Type Assertions function createShape(kind: string): Shape var circle = <Circle> createShape("circle");• Не является приведением типов, и не проверяется во время выполнения.
  12. 12. Интерфейсы Интерфейсы могут расширять друг друга Для интерфейсов не генерируется JavaScriptinterface Mover interface Mover{ { move(): void; move(): void; getStatus(): { speed: number; }; getStatus(): { speed: number; };} }interface MoverShaker extends Mover, Shaker{ getStatus(): { speed: number; frequency: number; };}
  13. 13. Интерфейсinterface StringComparer { (a: string, b: string): number; }А это будет функция, принимающая двастроковых параметра и возвращающаячисловое значение.
  14. 14. Ambient Declarationsdeclare var document:Document;Мы вводим переменную в TypeScript, хотя онаобъявлена где-то в другом месте.Код для таких объявлений не генерируется.
  15. 15. Классы var Lottery = (function () { function Lottery(secret) {class Lottery { this.secret = secret; constructor (private secret: number) { } } Lottery.prototype.gamble = function (guess) { public gamble(guess: number) { if(guess == this.secret) { if (guess == this.secret) console.log(win);console.log(win); } else { else console.log(loose); console.log(loose) } } }; private showSecret() { Lottery.prototype.showSecret = console.log(secret); function () { } console.log(secret);} }; return Lottery; })();
  16. 16. Классы• Есть public и private модификаторы.• Объявление и инициализация полей через параметры конструктора.• Обращение к родительскому классу через super
  17. 17. Модулиmodule M { var s = "hello"; export function f() { return s; }}M.f();M.s; // Error, s is not exported
  18. 18. ЗависимостиReference comment /// <reference path="Common.ts" />Import declarationimport mod = module("saturday");var modspeaker = new mod.Speaker();
  19. 19. Source Map tsc -sourcemap file.tsВ отладчике виден TypeScript вместоскомпилированного JavaScript.Работает в Google ChromeПока что не интегрировано в Visual Studio
  20. 20. Преимущества TypeScriptСтрогая типизацияМасштабируемость
  21. 21. Недостатки TypeScriptСостояние PreviewНеобходимость компиляцииНе полная совместимость с JavaScript
  22. 22. Спасибо !https://github.com/DmytroMindra/DotNetSaturdayTypeScriptGameGreat presentation by Ben Smithhttp://10consulting.com/2012/10/12/introduction-to-typescript-presentation/Documentationhttp://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdfOfficial Websitehttp://www.typescriptlang.orgAnders Hejlsberg: Introducing TypeScript

×