TypeScript

Big JavaScript Apps

  • Модульность
  • Тестирование
  • Фреймворки

CoffeeScript (2009)

  • Rails

  • DropBox

  • GitHub

CoffeeScript

coffee script samples

Плюсы:

  • Короткий синтаксис
  • Совместим с JavaScript кодом
  • Много новых конструкций

Минусы:

  • Не стал проще
  • Генерит непонятный JS код
  • Не совместим с ES6
  • Свой синтаксис

Google Dart (2011)

  • Google

  • Blossom

  • Quire

Dart

dart samples

2011

100kb

2012

20kb

2014

8 lines

Плюсы:

  • Строгая типизация
  • Много новых конструкций
  • IDE в комплекте

Минусы:

  • Генерит непонятный JS код
  • Не совместим с JavaScript
  • Другой язык

Microsoft TypeScript (2012)

Anders Hejlsberg

Андерс Хейлсберг

Автор: Turbo Pascal, Delphi и C#

What is TypeScript?

  • Надмножество JavaScript
  • Компилируется в чистый JavaScript.
  • Cтрого типизированный (опционально!)
  • Позволяет быстрее и проще писать сложные комплексные решения, которые легче развивать и тестировать в дальнейшем.

TypeScript Projects

  • Office 365
  • Visual Studio Online
  • Visual Studio Code
  • Angular 2

TypeScript Development

Simple JavaScript/TypeScript function
  • Следование спецификациям ECMAScript
  • Поддержка типов данных

Installation/Usage

The command-line TypeScript compiler can be installed as a Node.js package.

npm install -g typescript
$ tsc helloworld.ts

Basic Data Types

Basic data types
  • Частичная замена документации
  • Частичная замена Unit тестов

Type Aliases

Type Aliases

Enum

Enum

Interfaces

Interfaces

Interfaces (Optional Properties)

Interfaces, optional parameters

Interfaces (Typed Functions)

Typed functions

Interfaces (Typed Arrays)

Typed arrays

Interfaces (Typed Classes)

Interfaces

Interfaces (Hybrid Types)

Hybrid Types

Types Union

Types Union

Declaration Merging

Declaration Merging

Abstract Classes (Access modifiers)

Abstract Classes

Mixins (Примеси)

Mixins

Generics (Functions/Classes)

Generic Classes

Generics (Constraints)

Generic Constraints
  • Функция или класс работает с определенным диапозоном типов данных.

Generics (Constraints)

Generic Constraints
  • Функция или класс использует обобщенный тип данных в нескольких местах.

Decorators

Это обычная функция которая модифицирует класс, свойство, метод или параметр метода.

Decorators

Decorators

Decorators (sample)

Decorators

Separate Files

References

Third Party Libraries

Third Party Libraries

http://definitelytyped.org/

jQuery Parallax Example

Compiler Options (tsconfig.json)

Compiler Options
path-to-project> tsc

Resources

http://www.typescriptlang.org/

http://definitelytyped.org

Thank you for attention.