TypeScript

Для начала...

TypeScript — строго типизированный и компилируемый язык, расширяющий возможности JavaScript.

Anders Hejlsberg — разработчик языка, создавший ранее Turbo Pascal, Delphi и C#.

Представлен Microsoft в 2012 г.

Open source.

TypeScript обратно совместимым с JavaScript
и компилируется в него.

TypeScript — объектно-ориентирован.

  • Аннотации типов (и проверка их согласования на этапе компиляции)
  • Вывод типов
  • Классы
  • Интерфейсы
  • Перечисляемые типы
  • Примесь
  • Обобщённое программирование
  • Модули
  • Стрелочные функции
  • Дополнительные параметры и параметры по умолчанию
  • Кортежи
  • и др.

Установка и настройка

Node.js

+

npm

npm install -g typescript

или

через package.json

tsconfig.json


{
    "compilerOptions": {
        "target": "es5",
        "removeComments": true,
        "outFile": "../../built/local/tsc.js"
    },
    "files":[
        "app.ts"
    ],
    "exclude":[
        "node_modules"
    ]
}
tsc app.ts
К примеру...

index.html


<!DOCTYPE html>
<html>
<head></head>
<body>
    
</body> </html>

app.ts


class User{
    public name: string;
    public age: number;
    constructor(_name: string, _age: number) {
        this.name = _name;
        this.age = _age;
    }
}
let tom: User = new User("Том", 29);

let el = document.getElementById("content");
el.innerHTML="Имя: " + tom.name + ", возраст: " + tom.age;

app.js


var User = (function () {
    function User(_name, _age) {
        this.name = _name;
        this.age = _age;
    }
    return User;
}());
var tom = new User("Том", 29);

var el = document.getElementById("content");
el.innerHTML = "Имя: " + tom.name + ", возраст: " + tom.age;
Имя: Том, возраст: 29

Основы TypeScript

Объявление переменных
и констант

var, let, const

var x = "hello";
console.log(x); // hello

var x = "work";
console.log(x); // work
let x = "hello";
console.log(x);

let x = "work"; // Error
console.log(x);
let z = 6;
z = 8;

А если...

const z = 6;
z = 8; // Error

Но если...

const z = {a: 6};
z.a = 8;

Типы данных

  • Boolean логическое значение true или false
  • Number числовое значение
  • String строки
  • Array массивы
  • Tuple кортежи
  • Enum перечисления
  • Any произвольный тип
  • Null и undefined соответствуют значениям null и undefined в javascript
  • Void отсутствие конкретного типа
let x: number = 10;
let hello: string = "hello world";
let isValid: boolean = true;
let hello: string = "hello world";
hello = 23; // Error
let x;  // type any
x = 10;
let names: string[] = ["Tom", "Bob", "Alice"];
console.log(names[1]); // Bob

Функции

Тип функции
и лямбда-выражения

Объектно-ориентированное программирование

Классы

Наследование

Преобразование типов

Модификаторы и методы доступа

Обобщения

Миксины

Пространства имен

Модули

Заголовочные файлы

Примеры

(Рассмотрим подробнее)

Официальный сайт

Руководство по TypeScript (рус.)