Your SlideShare is downloading. ×
0
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
NetworkUA - 2012 - Introduction TypeScript
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

NetworkUA - 2012 - Introduction TypeScript

481

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
481
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ВВЕДЕНИЕ ВTypeScript Дмитрий Миндра LOHIKA, Одесса
  • 2. Geek and Pokehttp://geekandpoke .typepad.com/
  • 3. Зачем ? Для построения масштабируемых и поддерживаемых систем Для облегчения поддержки кода TypeScript – «опционально» типизированный язык Полностью совместим с JavaScript и является его надмножеством. Компилируется в JavaScript OpenSource
  • 4. Node.js С чего начать ? npm install –g typescript tsc source.tsVisual Studio 2012Plugin is available
  • 5. Расширения файлов*.ts – исходный код TypeScript• *.d.ts – TypeScript definition files
  • 6. Декларации• TypeScript всего лишь описывает контракты динамических типов, облегчая разработку.• Файлы с декларайиями позволяют описать типы как заголовочные файлы в C++• Intellisense будет корректно давать подсказки• Файлы для DOM и jQuery идут в поставке с TypeScript (lib.d.ts).• Сообщество активно пишет декларации для стандартных библиотек.
  • 7. Инструментальная поддержка• Статическая проверка типов• Навигация по символам• Intellisense• Рефакторинг
  • 8. Аннотации типовfunction multiply(a: number, b: number) { return a * b;}• Тип возвращаемого значения будет выведен.• Постфиксная запись :number• Есть опциональные параметры ?:number
  • 9. ТипыТип Any является общим предком для всех типов иможет хранить любой тип JavaScript без каких-либоограничений.Простые типы:  number  bool  String  null  undefinedОбъекты: Классы, модули, интерфейсы Типизированные массивы var employees : Employee[] = [];
  • 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. Type Assertions function createShape(kind: string): Shape var circle = <Circle> createShape("circle");• Не является приведением типов, и не проверяется во время выполнения.
  • 12. Интерфейсы Интерфейсы могут расширять друг друга Для интерфейсов не генерируется JavaScriptinterface Mover interface Shaker{ { move(): void; shake(): void; getStatus(): { speed: number; }; getStatus(): { speed: number; };} }interface MoverShaker extends Mover, Shaker{ getStatus(): { speed: number; frequency: number; };}
  • 13. Интерфейсinterface StringComparer { (a: string, b: string): number; }А это будет функция, принимающая двастроковых параметра и возвращающаячисловое значение.
  • 14. Ambient Declarationsdeclare var document:Document;Мы вводим переменную в TypeScript, хотя онаобъявлена где-то в другом месте.Код для таких объявлений не генерируется.
  • 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. Классы• Есть public и private модификаторы.• Объявление и инициализация полей через параметры конструктора.• Обращение к родительскому классу через super
  • 17. Модулиmodule M { var s = "hello"; export function f() { return s; }}M.f();M.s; // Error, s is not exported
  • 18. ЗависимостиReference comment /// <reference path="Common.ts" />Import declarationimport mod = module("saturday");var modspeaker = new mod.Speaker();
  • 19. Source Map tsc -sourcemap file.tsВ отладчике виден TypeScript вместоскомпилированного JavaScript.Работает в Google ChromeПока что не интегрировано в Visual Studio
  • 20. Преимущества TypeScriptСтрогая типизацияМасштабируемость
  • 21. Недостатки TypeScriptСостояние PreviewНеобходимость компиляцииНе полная совместимость с JavaScriptВозможное разветвление с ECMAScript
  • 22. Спасибо !https://github.com/DmytroMindra/NetworkUA-2012-TypeScriptGameGreat 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

×