Все для создания и продвижения сайтов

Верстка, программирование, SEO

Заметки по TypeScript

Набросал краткие заметки и шпаргалки по TypeScript. Для тренировки памяти и лучшего восприятие данного языка. Страница будет обновляться более новыми записями.

1. Установка TypeScript через NodeJS

npm install -g typescript

2. Watcher для компиляции TS в JS.

tsc -w app.ts

3. Типы переменных.

let Age: number = 25;
let Name: string = 'Иван';
let Text: string = `
Многострочный
текст
`;
let isDead: boolen = true; // or false
let x: undefined = undefined;
let y: null = null;
// Любой тип
let info: any = 123;
let info: any = 'string';
// Массивы
let list: number[] = [11, 12, 13];
let colors: string[] = ["Красный", "Синий", "Зеленый"];
// Кортежи
let userInfo: [string, number];
userInfo = ["Иван", 28];
// Enum
enum Season { Winter, Spring, Summer, Autumn }; // {0,1,2,3}
let current: Season = Season.Summer;
console.log(current); // 2
enum Season { Winter=0, Spring=1, Summer=2, Autumn=3
// Объекты
let person = {name:"Иван", age:25};
console.log(person.name);
// Несколько типов
let id: number | string;

4. Шаблоны строк

let firstName: string = "Иван";
let age: number = 35;
let text: string = `Имя ${firstName}. Возраст: ${age}`;
console.log(text);  // Имя Иван. Возраст: 28

5. Функции с вводом и выводом по типу.

function add(a: number, b: number): number {
    return a + b;
}

6. Стрелочные функции.

let sum = (x, y) => x + y +3;
let result = sum(1, 2);
console.log(result); // 6

let square = x => x * x;
let text = () => "Hello Friend";
console.log(square(5)); // 25
console.log(text()); // Hello Friend

7. Создание простого класса.

class User {
    // Свойства
    name: string;
    age: number;

    // Методы
    getInfo(): string {
        return "Имя: " + this.name + ". Возраст:" + this.age;
    }
}

let ivan = new User();
ivan.name = 'Иван';
ivan.age = 18;
console.log(ivan.getInfo()); // Имя: Иван. Возраст:18

8. Создание класса с конструктором.


class User {
    name: string;
    age: number;
    
    // Срабатывает при создании объекта
    constructor(userName: string, userAge: number) {
        this.name = userName;
        this.age = userAge;
    }
}

let ivan = new User('Иван', 18);

9. Класс со статическими методами (Без создания экземпляра класса).

const curDate = new Date;
const curYear: number = curDate.getFullYear();

class UserInfo {
    static age: number;

    static getYearBirth(age){
        return curYear - age;
    }

    static isAdult(age){
        let result: boolean = false;
        if(age >= 18){
            result = true;
        }
        return result;
    }
}

let result1 = UserInfo.getYearBirth(24);
let result2 = UserInfo.isAdult(14);
console.log(result1,result2); // 1994 false

10. Методы доступа: set/get.

class User {

    private _name: string;

    public get name(): string {
        return this._name;
    }

    public set name(n: string) {
        this._name = n;
    }
}

let Ivan = new User();
Ivan.name = "Иван";   // срабатывает set-метод
console.log(Ivan.name);  // срабатывает get-метод

11. Переопределение конструктора и метода в дочернем классе (выполняется через super())

class User {
    name: string;
    age: number;
    constructor(userName: string, userAge: number) {
        this.name = userName;
        this.age = userAge;
    }
    getInfo(): void{
        console.log("Его зовут " + this.name + " и ему " + this.age + " лет.");
    }
}

class Employee extends User {
    company: string;
    constructor(userName: string, userAge: number, userCompany: string) {
        super(userName,userAge);
        this.company = userCompany;
    }
    getInfo(): void {
        super.getInfo();
        console.log("И он работает в компании " + this.company + '.');
    }
}

let Ivan: Employee = new Employee("Иван", 29, "Microsoft");
Ivan.getInfo(); //Его зовут Иван и ему 29 лет. И он работает в компании Microsoft.

12. Абстрактные классы. (нельзя от него создать объект)

abstract class Animal{
    abstract getName(): void;
}
class Dog extends Animal{
    constructor(public name: string){
        super();
    }
    getName(): void{
        console.log('Имя собаки ' + this.name);
    }
}

let bobik: Animal = new Dog('Бобик');
bobik.getName();
Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.