Typescript полное руководство разработчика

Время на прочтение
5 мин

Количество просмотров 57K

Всем привет. Меня зовут Лихопой Кирилл и я — Fullstack-разработчик.

С начала этого года я начал изучать TS, и меня заинтересовала эта статья, так как в ней все разложено «по полочкам», без лишней воды и сложных определений. В следствие этого родилась идея сделать ее перевод, чтобы начинающие разработчики могли ознакомиться с этой статьей, но уже на русском языке. Итак, приступим.

В последние несколько лет TypeScript обретает все большую популярность. Более того, на многих вакансиях от программистов требуется знание TypeScript.

Однако не стоит бояться — если вы уже знаете JavaScript, то вам не составит большого труда освоить TypeScript.

Даже если вы не планируете изучать TypeScript, знакомство с ним позволит вам глубже понять JavaScript и стать лучше, как разработчик.

В этой статье (серии статей) вы узнаете:

  • Что такое TypeScript, и почему мне нужно изучить его?

  • Как создать проект с использованием TypeScript.

  • Главные концепты TypeScript (типы, интерфейсы, дженерики (обобщенные типы), утверждение типов и многое другое).

  • Как использовать TypeScript с React’ом.

Я также создал PDF-шпаргалку и постер, которые суммируют эту статью. Они помогут вам быстро понять и освежить в памяти все концпеты и синтаксис TypeScript.

Прим. переводчика: в скором времени будет выпущен перевод данной шпаргалки.

Шпаргалка по TypeScript11111й

Шпаргалка по TypeScript11111й

Что такое TypeScript?

TypeScript — это расширенная версия JavaScript. То есть он содержит в себе все то же самое, что и JavaScript, но с некоторыми дополнениями.

Главная причина использовать TypeSciprt — это возможность добавить статическую типизацию к JavaScript. Тип переменной со статической типизацией не может быть изменен после ее объявления. Это может предотвратить БОЛЬШОЕ количество багов.

С другой стороны, JavaScript — динамически типизированный язык, то есть типы переменных могуть изменяться. Например:

// JavaScript
let foo = "Привет";
foo = 55; // тип переменной foo изменяется со строки на число - никаких проблем

// TypeScript
let foo = "Привет";
foo = 55; // ERROR - тип переменной foo не может быть изменен

TypeScript не воспринимается браузерами, поэтому его надо скомпилировать в JavaScript с помощью TypeScript Compiler (TSC) — мы обсудим его чуть позже.

Стоит ли TypeScript того?

Почему вам нужно использовать TypeScript

  • Исследование показало, что TypeScript может обнаружить 15% самых частых багов.

  • Читаемость — намного проще видеть, что делает код. А при работе в команде проще видеть, что делают другие разработчики.

  • Популярность — знание TypeScript позволит вам расширить круг вакансий, на которые вы сможете претендовать.

  • Изучение TypeScript даст вам лучшее понимание и новый взгляд на JavaScript.

Здесь вы можете прочитать мою короткую статью, в которой я показываю, как TypeScript может предотвращать раздражающие баги.

Недостатки TypeScript

  • Написание кода на TypeScript занимает большее время, чем на JavaScript,так как необходимо типизировать переменные. Так что в небольших проектах, возможно, оно не стоит того.

  • TypeScript необходимо компилировать, а это занимает время, особенно в больших проектах.

Однако время, которое вы потратите на написание более точного кода и компиляцию будет более чем компенсировано тем, сколько багов могло бы быть в вашем коде.

Для большинства проектов — средних и больших — TypeScript сэкономит вам много времени и сил.

Более того, если вы уже знаете JavaScript, то изучение TypeScript не составит вам большого труда. Он станет отличным инструментом в вашем арсенале.

Как настроить TypeScript проект

Установка Node и компилятора TypeScript (TSC)

Для начала убедитесть, что Node глобально установлена на вашей машине.

Затем, глобально установите компилятор TypeScript на вашей машине следующей командой:

npm i -g typescript

Убедитесь, что установка прошла успешно (если да — то команда вернет номер версии).

tsc -v

Как компилировать TypeScript

Откройте любой текстовые редактор и создайте TypeScript-файл (например, index.ts).

Напишите какой-нибудь код на JavaScript или TypeScript:

let sport = 'Футбол';
let id = 5;

Мы можем скомпилировать это в JavaScript следующей командой:

tsc index

TSC скомпилирует код в JavaScript-файл index.js:

var sport = 'Футбол';
var id = 5;

Если вы хотите изменить название файла:

tsc index.ts --outfile file-name.js

Если вы хотите, чтобы TSC компилировал ваш код автоматически, при изменениях, добавьте флаг “watch” (-w):

tsc index.ts -w

Интересная особенность TypeScript — он сообщает об ошибках в вашем текстовом редакторе, пока вы пишете код, но он все равно всегда скомпилирует ваш код — в независимости от того, есть в нем ошибки, или нет.

Например, следующий пример вызывает ошибку TypeScript:

var sport = 'Футбол';
var id = 5;
id = '5'; // Ошибка компилятора - Error: Type 'string' is not assignable to type 'number'.

Однако если мы попытаемся скомпилировать код с помощью tsc index , код скомпилируется, несмотря на ошибку.

Это важное преимущество TypeScript: он предполагает, что разработчик знает больше. Несмотря на то, что TypeScript выдает ошибку, это не отразится на компиляции вашего кода. Он скажет, что есть ошибка, но делать с ней что-то или нет — решать вам.

Как настроить файл конфигурации TypeScript

Файл конфигурации TS должен находиться в корневой директории вашего проекта. В этом файле мы можем указать корневой файл, опции компилятора и насколько строго мы хотим, чтобы TypeScript делал проверку в нашем проекте.

Сначала создаейте файл конфигурации TS:

tsc —init

После этого, в корневой директории, у вас должен появиться файл tsconfig.json .

Вот пример некоторых опций, о которых стоит знать (если вы используете frontend-фреймворк с TypeScript, то о большинстве этих вещей уже позаботились):

{
    "compilerOptions": {
        ...
        /* Модули */
        "target": "es2016", // Измените на "ES2015", чтобы скомпилировать в ES6
        "rootDir": "./src", // Откуда компилировать
        "outDir": "./public", // Куда компилировать (обычно папка, которая разворачивается на сервере)
        /* Поддержка JavaScript */
        "allowJs": true, // Позволяет компилировать JS-файлы
        "checkJs": true, // Проверяет типы в JavaScript-файлах и сообщает об ошибках

        /* Emit */
        "sourceMap": true, // Создать source map файлы для готовых файлов JavaScript (хороошо подходит для дебаггинга)
        "removeComments": true, // Игнорировать комментарии
    },

  	"include": ["src"] // Компилировать только файлы из папки src
}

Скомпилировать все и наблюдать за изменениями:

tsc -w

Напоминание: если вы указываете входные файлы в коммандной строке (например, tsc index ), файлы tsconfig.json будут игнорироваться.

Типы данных в TypeScript

Примитивы

В JavaScript примитивы значение — это данные, которые не являются объектами и не имеют методов. Всего есть 7 примитивных типов:

  • string

  • number

  • bigint

  • boolean

  • undefined

  • null

  • symbol

Примитивы иммутабельны: они не могут быть изменены. Важно не путать сами примитивы и переменные, объявленные, как примитивы. Переменной может быть назначено новое значение, но текущее значение не может быть изменено, так же, как могут быть изменены объекты, массивы и функции.

Например:

let name = 'Денис';
name.toLowerCase();
console.log(name); // Денис - метод строки не может изменить саму строку
let arr = [1, 3, 5, 7];
arr.pop();
console.log(arr); // [1, 3, 5] - метод массива изменяет массив
name = 'Анна' // присваивание дает примитиву новое (не измененное) значение

В JavaScript все примитвные значение (кроме null и undefined) имеют объектные эквиваленты, которые являются оболочкой для примитивов. Эти объекты-оболочки — String, Number, BigInt, Boolean и Symbol. Они имеют методы, которые позволяют манипулировать примитивами.

Теперь поговорим о TypeScript. В TypeScript мы можем указывать у переменной нужный нам тип данных с помощью : type после объявления переменной. Это называется объявлением типа, или подписью типа. Например:

let id: number = 5;
let firstname: string = 'Денис';
let hasDog: boolean = true;
let unit: number; // Объявление переменной без присваивания значения
unit = 5;

Однако в большинстве случаев, лучше не указывать тип явно, так как TypeScript автоматически присваивает тип переменной (вывод типа).

let id = 5; // TS знает, что это число
let firstname = 'danny'; // TS знает, что это строка
let hasDog = true; // TS знает, что это логическое значение
hasDog = 'yes'; // ERROR - TS выдаст ошибку

Также мы можем задать переменной объединенное значение. Объединенный тип — это переменная, которой можно присвоить более одного типа.

let age: string | number;
age = 26;
age = '26';

Подписывайтесь, чтобы не пропустить следующие части!

  • Урок 1.
    00:01:05

    How to Get Help

  • Урок 2.
    00:06:20

    Typescript Overview

  • Урок 3.
    00:08:00

    Environment Setup

  • Урок 4.
    00:04:44

    A First App

  • Урок 5.
    00:05:04

    Executing Typescript Code

  • Урок 6.
    00:03:36

    One Quick Change

  • Урок 7.
    00:07:23

    Catching Errors with Typescript

  • Урок 8.
    00:05:16

    Catching More Errors!

  • Урок 9.
    00:03:37

    Do Not Skip — Course Overview

  • Урок 10.
    00:05:13

    Types

  • Урок 11.
    00:05:54

    More on Types

  • Урок 12.
    00:04:50

    Examples of Types

  • Урок 13.
    00:00:50

    Where Do We Use Types?

  • Урок 14.
    00:02:04

    Type Annotations and Inference

  • Урок 15.
    00:04:54

    Annotations with Variables

  • Урок 16.
    00:06:54

    Object Literal Annotations

  • Урок 17.
    00:05:57

    Annotations Around Functions

  • Урок 18.
    00:03:52

    Understanding Inference

  • Урок 19.
    00:07:48

    The ‘Any’ Type

  • Урок 20.
    00:01:50

    Fixing the ‘Any’ Type

  • Урок 21.
    00:03:06

    Delayed Initialization

  • Урок 22.
    00:04:38

    When Inference Doesn’t Work

  • Урок 23.
    00:04:57

    More on Annotations Around Functions

  • Урок 24.
    00:06:09

    Inference Around Functions

  • Урок 25.
    00:01:43

    Annotations for Anonymous Functions

  • Урок 26.
    00:02:50

    Void and Never

  • Урок 27.
    00:03:36

    Destructuring with Annotations

  • Урок 28.
    00:07:06

    Annotations Around Objects

  • Урок 29.
    00:05:06

    Arrays in Typescript

  • Урок 30.
    00:04:31

    Why Typed Arrays?

  • Урок 31.
    00:02:58

    Multiple Types in Arrays

  • Урок 32.
    00:00:55

    When to Use Typed Arrays

  • Урок 33.
    00:04:06

    Tuples in Typescript

  • Урок 34.
    00:05:29

    Tuples in Action

  • Урок 35.
    00:03:21

    Why Tuples?

  • Урок 36.
    00:01:27

    Interfaces

  • Урок 37.
    00:04:43

    Long Type Annotations

  • Урок 38.
    00:04:37

    Fixing Long Annotations with Interfaces

  • Урок 39.
    00:03:32

    Syntax Around Interfaces

  • Урок 40.
    00:04:47

    Functions in Interfaces

  • Урок 41.
    00:04:16

    Code Reuse with Interfaces

  • Урок 42.
    00:03:13

    General Plan with Interfaces

  • Урок 43.
    00:03:48

    Classes

  • Урок 44.
    00:03:04

    Basic Inheritance

  • Урок 45.
    00:06:42

    Instance Method Modifiers

  • Урок 46.
    00:06:19

    Fields in Classes

  • Урок 47.
    00:04:19

    Fields with Inheritance

  • Урок 48.
    00:01:11

    Where to Use Classes

  • Урок 49.
    00:02:46

    App Overview

  • Урок 50.
    00:04:56

    Bundling with Parcel

  • Урок 51.
    00:03:20

    Project Structure

  • Урок 52.
    00:05:30

    Generating Random Data

  • Урок 53.
    00:05:18

    Type Definition Files

  • Урок 54.
    00:06:21

    Using Type Definition Files

  • Урок 55.
    00:05:07

    Export Statements inTypescript

  • Урок 56.
    00:04:44

    Defining a Company

  • Урок 57.
    00:07:39

    Adding Google Maps Support

  • Урок 58.
    00:04:07

    Google Maps Integration

  • Урок 59.
    00:12:47

    Exploring Type Definition Files

  • Урок 60.
    00:06:29

    Hiding Functionality

  • Урок 61.
    00:08:26

    Why Use Private Modifiers? Here’s Why

  • Урок 62.
    00:09:19

    Adding Markers

  • Урок 63.
    00:02:46

    Duplicate Code

  • Урок 64.
    00:06:39

    One Possible Solution

  • Урок 65.
    00:05:36

    Restricting Access with Interfaces

  • Урок 66.
    00:03:27

    Implicit Type Checks

  • Урок 67.
    00:06:48

    Showing Popup Windows

  • Урок 68.
    00:07:12

    Updating Interface Definitions

  • Урок 69.
    00:06:07

    Optional Implements Clauses

  • Урок 70.
    00:08:09

    App Wrapup

  • Урок 71.
    00:01:35

    App Overview

  • Урок 72.
    00:07:41

    Configuring the TS Compiler

  • Урок 73.
    00:05:06

    Concurrent Compilation and Execution

  • Урок 74.
    00:04:48

    A Simple Sorting Algorithm

  • Урок 75.
    00:03:11

    Sorter Scaffolding

  • Урок 76.
    00:05:18

    Sorting Implementation

  • Урок 77.
    00:07:38

    Two Huge Issues

  • Урок 78.
    00:09:35

    Typescript is Really Smart

  • Урок 79.
    00:09:15

    Type Guards

  • Урок 80.
    00:02:23

    Why is This Bad?

  • Урок 81.
    00:07:30

    Extracting Key Logic

  • Урок 82.
    00:13:59

    Separating Swapping and Comparison

  • Урок 83.
    00:04:39

    The Big Reveal

  • Урок 84.
    00:04:49

    Interface Definition

  • Урок 85.
    00:11:09

    Sorting Arbitrary Collections

  • Урок 86.
    00:24:16

    Linked List Implementation

  • Урок 87.
    00:04:04

    Just…One…More…Fix…

  • Урок 88.
    00:02:45

    Integrating the Sort Method

  • Урок 89.
    00:06:55

    Issues with Inheritance

  • Урок 90.
    00:06:26

    Abstract Classes

  • Урок 91.
    00:04:31

    Why Use Abstract Classes?

  • Урок 92.
    00:04:01

    Solving All Issues with Abstract Classes

  • Урок 93.
    00:03:24

    Interfaces vs Abstract Classes

  • Урок 94.
    00:01:46

    Project Overview

  • Урок 95.
    00:05:58

    Project Setup

  • Урок 96.
    00:06:46

    Type Definition Files — Again!

  • Урок 97.
    00:05:06

    Reading CSV Files

  • Урок 98.
    00:04:23

    Running an Analysis

  • Урок 99.
    00:05:13

    Losing Dataset Context

  • Урок 100.
    00:06:20

    Using Enums

  • Урок 101.
    00:07:05

    When to Use Enums

  • Урок 102.
    00:08:51

    Extracting CSV Reading

  • Урок 103.
    00:02:34

    Data Types

  • Урок 104.
    00:05:03

    Converting Date Strings to Dates

  • Урок 105.
    00:03:38

    Converting Row Values

  • Урок 106.
    00:03:58

    Type Assertions

  • Урок 107.
    00:07:29

    Describing a Row with a Tuple

  • Урок 108.
    00:03:15

    Not Done with FileReader Yet!

  • Урок 109.
    00:04:36

    Understanding Refactor #1

  • Урок 110.
    00:04:22

    Creating Abstract Classes

  • Урок 111.
    00:11:28

    Variable Types with Generics

  • Урок 112.
    00:04:12

    Applying a Type to a Generic Class

  • Урок 113.
    00:04:21

    Alternate Refactor

  • Урок 114.
    00:02:05

    Interface-Based Approach

  • Урок 115.
    00:02:34

    Extracting Match References — Again!

  • Урок 116.
    00:02:37

    Transforming Data

  • Урок 117.
    00:03:40

    Updating Reader References

  • Урок 118.
    00:03:21

    Inheritance vs Composition

  • Урок 119.
    00:07:23

    More on Inheritance vs Composition

  • Урок 120.
    00:14:57

    A Huge Misconception Around Composition

  • Урок 121.
    00:05:17

    Goal Moving Forward

  • Урок 122.
    00:06:27

    A Composition-Based Approach

  • Урок 123.
    00:07:25

    Implementing an Analyzer Class

  • Урок 124.
    00:05:27

    Building the Reporter

  • Урок 125.
    00:03:36

    Putting It All Together

  • Урок 126.
    00:05:10

    Generating HTML Reports

  • Урок 127.
    00:05:35

    One Last Thing!

  • Урок 128.
    00:03:15

    Oops, My Bad

  • Урок 129.
    00:03:34

    App Wrapup

  • Урок 130.
    00:05:05

    More on Generics

  • Урок 131.
    00:02:50

    Type Inference with Generics

  • Урок 132.
    00:06:06

    Function Generics

  • Урок 133.
    00:05:51

    Generic Constraints

  • Урок 134.
    00:02:46

    App Overview

  • Урок 135.
    00:02:43

    Parcel Setup

  • Урок 136.
    00:08:06

    Framework Structure

  • Урок 137.
    00:02:49

    Designing the User

  • Урок 138.
    00:06:00

    Retrieving User Properties

  • Урок 139.
    00:06:38

    Optional Interface Properties

  • Урок 140.
    00:02:45

    An Eventing System

  • Урок 141.
    00:04:24

    Listener Support

  • Урок 142.
    00:05:25

    Storing Event Listeners

  • Урок 143.
    00:05:28

    Dynamic Array Creation

  • Урок 144.
    00:03:58

    Triggering Event Callbacks

  • Урок 145.
    00:07:15

    Adding JSON Server

  • Урок 146.
    00:08:53

    Understanding REST Conventions

  • Урок 147.
    00:05:13

    Adding Fetch Functionality

  • Урок 148.
    00:04:51

    Successfully Fetching Model Data

  • Урок 149.
    00:08:58

    Saving User Data

  • Урок 150.
    00:03:49

    Refactoring with Composition

  • Урок 151.
    00:12:50

    Re-Integrating Eventing

  • Урок 152.
    00:02:46

    Composition with Nested Objects

  • Урок 153.
    00:02:49

    A More Complicated Extraction

  • Урок 154.
    00:09:33

    Options for Adapting Sync

  • Урок 155.
    00:10:42

    Refactoring Sync

  • Урок 156.
    00:03:31

    Generic Constraints Around Sync

  • Урок 157.
    00:04:31

    Connecting Sync Back to User

  • Урок 158.
    00:07:01

    Optional Properties

  • Урок 159.
    00:03:13

    Extracting an Attributes Class

  • Урок 160.
    00:06:19

    The Get Method’s Shortcoming

  • Урок 161.
    00:07:07

    Two Important Rules

  • Урок 162.
    00:09:37

    An Advanced Generic Constraint

  • Урок 163.
    00:03:19

    Re-Integrating Attributes

  • Урок 164.
    00:04:40

    Composition is Delegation

  • Урок 165.
    00:05:08

    Reminder on Accessors

  • Урок 166.
    00:06:56

    Passthrough Methods

  • Урок 167.
    00:08:38

    A Context Issue

  • Урок 168.
    00:03:23

    Setting Data While Triggering

  • Урок 169.
    00:06:27

    Fetching User Data

  • Урок 170.
    00:05:39

    Saving Data

  • Урок 171.
    00:09:03

    Composition vs Inheritance…Again!

  • Урок 172.
    00:07:30

    Extracting a Model Class

  • Урок 173.
    00:05:25

    Extending the User

  • Урок 174.
    00:03:49

    Final User Refactor

  • Урок 175.
    00:03:39

    Model Wrapup

  • Урок 176.
    00:05:40

    Shortened Passthrough Methods

  • Урок 177.
    00:03:27

    Users Collection

  • Урок 178.
    00:03:02

    Implementing a Users Collection

  • Урок 179.
    00:07:13

    Parsing User JSON

  • Урок 180.
    00:06:23

    Generic User Collection

  • Урок 181.
    00:02:15

    A Class Method for Collections

  • Урок 182.
    00:04:04

    View Classes

  • Урок 183.
    00:04:46

    Building the UserForm

  • Урок 184.
    00:03:04

    The UserForm’s Render Method

  • Урок 185.
    00:02:07

    Rendering HTML

  • Урок 186.
    00:06:14

    Defining an Events Map

  • Урок 187.
    00:07:07

    Binding Event Handlers

  • Урок 188.
    00:04:16

    Adding Model Properties

  • Урок 189.
    00:05:09

    Binding Events on Class Name

  • Урок 190.
    00:04:31

    Adding Methods to the User

  • Урок 191.
    00:04:57

    Re-Rendering on Model Change

  • Урок 192.
    00:04:40

    Reading Input Text

  • Урок 193.
    00:06:13

    Strict Null Checks

  • Урок 194.
    00:12:26

    Reusable View Logic

  • Урок 195.
    00:04:11

    Extracting a View Class

  • Урок 196.
    00:12:16

    Extending with Generic Constraints

  • Урок 197.
    00:03:58

    Saving Data From a View

  • Урок 198.
    00:06:13

    UserEdit and UserShow

  • Урок 199.
    00:04:49

    Nesting with Regions

  • Урок 200.
    00:05:41

    Mapping Regions

  • Урок 201.
    00:04:02

    Testing Region Mapping

  • Урок 202.
    00:06:54

    View Nesting

  • Урок 203.
    00:02:21

    Collection Views

  • Урок 204.
    00:16:53

    CollectionView Implementation

  • Урок 205.
    00:03:36

    App Wrapup

  • Урок 206.
    00:05:35

    Typescript with JS Libraries

  • Урок 207.
    00:03:20

    App Overview

  • Урок 208.
    00:03:32

    Project Setup

  • Урок 209.
    00:06:32

    Basic Routes with Express

  • Урок 210.
    00:03:47

    Using an Express Router

  • Урок 211.
    00:05:56

    Parsing Form Bodies

  • Урок 212.
    00:13:56

    Why Doesn’t Express Play Nicely with TS?

  • Урок 213.
    00:10:17

    Issues with Type Definition Files

  • Урок 214.
    00:06:29

    Dealing with Poor Type Defs

  • Урок 215.
    00:08:37

    Wiring Up Sessions

  • Урок 216.
    00:03:20

    Checking Login Status

  • Урок 217.
    00:01:10

    Logging Out

  • Урок 218.
    00:04:52

    Protecting Routes

  • Урок 219.
    00:06:34

    A Closer Integration

  • Урок 220.
    00:03:15

    The Refactoring Process

  • Урок 221.
    00:08:44

    Prototypes Reminder

  • Урок 222.
    00:06:49

    Decorators in Typescript

  • Урок 223.
    00:07:41

    Details on Decorators

  • Урок 224.
    00:06:12

    Property Descriptors

  • Урок 225.
    00:02:08

    Wrapping Methods with Descriptors

  • Урок 226.
    00:02:47

    Decorator Factories

  • Урок 227.
    00:03:58

    Decorators Around Properties

  • Урок 228.
    00:07:33

    More on Decorators

  • Урок 229.
    00:00:59

    A Quick Disclaimer

  • Урок 230.
    00:08:18

    Project Overview

  • Урок 231.
    00:07:07

    Why is This Hard?

  • Урок 232.
    00:05:52

    Solution Overview

  • Урок 233.
    00:08:47

    Basics of Metadata

  • Урок 234.
    00:11:09

    Practical Metadata

  • Урок 235.
    00:04:52

    Let’s Refactor!

  • Урок 236.
    00:04:26

    The ‘Get’ Decorator

  • Урок 237.
    00:04:21

    The Controller Decorator

  • Урок 238.
    00:05:13

    Proof of Concept

  • Урок 239.
    00:08:10

    A Few Fixups

  • Урок 240.
    00:05:05

    Defining a RouteBinder

  • Урок 241.
    00:07:39

    Closed Method Sets with Enums

  • Урок 242.
    00:03:44

    Metadata Keys

  • Урок 243.
    00:08:02

    The ‘Use’ Decorator

  • Урок 244.
    00:03:23

    Testing Use

  • Урок 245.
    00:05:56

    Body Validators

  • Урок 246.
    00:03:26

    Automated Validation

  • Урок 247.
    00:05:37

    Testing Automated Validation

  • Урок 248.
    00:06:04

    Fixing Routes

  • Урок 249.
    00:05:19

    Using Property Descriptors for Type Checking

  • Урок 250.
    00:01:23

    App Wrapup

  • Урок 251.
    00:06:06

    React and Redux Overview

  • Урок 252.
    00:02:07

    App Overview

  • Урок 253.
    00:01:08

    Generating the App

  • Урок 254.
    00:03:36

    Simple Components

  • Урок 255.
    00:03:26

    Interfaces with Props

  • Урок 256.
    00:02:31

    Handling Component State

  • Урок 257.
    00:10:41

    Confusing Component State!

  • Урок 258.
    00:03:16

    Functional Components

  • Урок 259.
    00:07:33

    Redux Setup

  • Урок 260.
    00:06:46

    Action Creators with Typescript

  • Урок 261.
    00:04:52

    Action Types Enum

  • Урок 262.
    00:04:49

    The Generic Dispatch Function

  • Урок 263.
    00:06:47

    A Reducer with Enums

  • Урок 264.
    00:05:07

    Validating Store Structure

  • Урок 265.
    00:06:11

    Connecting a Component to Redux

  • Урок 266.
    00:04:37

    Rendering a List

  • Урок 267.
    00:02:55

    Adding in Delete Functionality

  • Урок 268.
    00:03:22

    Breaking Out Action Creators

  • Урок 269.
    00:04:08

    Expressing Actions as Type Union

  • Урок 270.
    00:02:49

    Type Guards in Reducers

  • Урок 271.
    00:03:02

    Again, Type Definition Files

  • Урок 272.
    00:04:07

    Tracking Loading with Component State

  • Урок 273.
    00:03:39

    App Wrapup

[YouRa Allakhverdov] TypeScript - полное руководство разработчика (2021)

  • Описание

  • Отзывы (0)

Описание

[YouRa Allakhverdov] TypeScript – полное руководство разработчика (2021)

[YouRa Allakhverdov] TypeScript - полное руководство разработчика (2021)

TypeScript – полное руководство разработчика
TypeScript – Javascript уровня продакшн. Освойте TypeScript, изучая популярные шаблоны проектирования

Чему вы научитесь:

Освоите шаблоны проектирования для создания больших приложений
Поймёте композицию и наследование, и когда их использовать
Научитесь повторно использовать код на базе классов и интерфейсов
Научитесь собирать многоразовые шаблоны для ваших собственных проектов Typescript

Требования:

Базовые знания ES2015 Javascript

Описание курса:

Typescript – это «супернабор» Javascript. Это означает, что если вы уже знаете Javascript, вы готовы пройти этот курс. Typescript добавляет в Javascript несколько важных функций, включая систему типов. Эта система типов предназначена для того, чтобы помочь вам обнаруживать ошибки во время разработки, а не во время выполнения кода. Это означает, что вы будете вдвое продуктивнее, выявляя ошибки на более ранних этапах разработки. Но помимо системы типов, Typescript также предоставляет несколько инструментов для структурирования больших кодовых баз и написания действительно многоразового кода.

Освоить Typescript, просто прочитав документацию, непросто. Хотя вы, возможно, знаете, что такое «типизированный массив» или «интерфейс», документация не показывают вам, где использовать эти функции или как их эффективно использовать. Цель этого курса – помочь вам понять, почему существует каждая функция Typescript и где именно их использовать.

Ведущие компании с нетерпением ждут разработчиков Typescript. Некоторые из крупнейших веб-приложений сегодня создаются с помощью Typescript. Работодатели изо всех сил пытаются найти инженеров, свободно владеющих этой передовой системой. Хорошее знание Typescript сделает вас гораздо более трудоустроенным, предоставив вам уникальные навыки, которыми обладают немногие другие инженеры.

Планируете создавать собственные приложения? Использование Typescript поможет вам правильно структурировать свой проект с первого дня. В этом курсе вы узнаете, как писать повторно используемый код, уделяя огромное внимание использованию классов и интерфейсов для создания заменяемых «виджетов». Вы сможете перенастраивать свои приложения на лету, чтобы создавать совершенно разные функции с минимальными усилиями.

Но не верьте мне на слово – посмотрите отзывы об этом курсе! Вы увидите, что другие инженеры, как и вы, добились больших успехов и приобрели новое понимание того, как создавать масштабируемые веб-приложения.

Для кого этот курс:

Любой Javascript-разработчик, который хочет понять, как структурировать большие кодовые базы
Не теряйте драгоценное время и записывайтесь на курс прямо сейчас!

Автор курса: YouRa Allakhverdov

Сайт продажника: https://www.udemy.com/course/typescript-bootcamp/

Цена с продажника: 7990 руб.

У нас Вы можете приобрести всего за 50 руб.

TypeScript привлекает внимание программистов своей типизацией, читаемостью и поддержкой современных возможностей JavaScript. Книга «TypeScript. Подробное Руководство. Книга
и документация в одном» является полезным ресурсом для опытных разработчиков и тех, кто хочет освоить TS.

Преимущества книги

  • Комплексное руководство.
    Книга предоставляет полное и всестороннее покрытие языка TypeScript. Она начинается с основных концепций и синтаксиса, а затем
    переходит к более сложным темам, таким как обобщенные типы, декораторы и аспекты языка.
  • Примеры кода.
    В пособии показано множество практических примеров кода, которые помогают лучше понять концепции и возможности TypeScript. 
  • Объединение учебника и документации в одном издании.
    Это позволяет быстро находить нужную информацию и использовать его как справочник.

Недостатки

  • Сложность для новичков.
    Пособие в большей степени предназначено для разработчиков с некоторым опытом в программировании и языке TypeScript. 
  • Многословность.
    Иногда информация представлена слишком объемно, что приводит к потере фокуса или сосредоточению на второстепенных деталях.
  1. Опытным разработчикам JavaScript, которые хотят углубить знания в TS и научиться использовать его в своих проектах.
  2. Студентам, изучающим программирование. Данное пособие станет ценным источником знаний и поможет стать компетентными в использовании TypeScript.
  3. JavaScript-разработчики, переходящие на TS. Руководство предоставляет хорошую возможность научиться новому языку и перенести свои знания на новый уровень.

Рекомендуем скачать книгу «TypeScript. Подробное Руководство. Книга и документация в одном» прямо сейчас. Она считается полным и всесторонним ресурсом для изучения
TypeScript, ведь пособие объединяет руководство и документацию в одном издании. 

Скачать книгу PDF

Читать онлайн

TypeScript — Javascript уровня продакшн. Освойте TypeScript, изучая популярные шаблоны проектирования

Чему вы научитесь

Освоите шаблоны проектирования для создания больших приложений
Поймёте композицию и наследование, и когда их использовать
Научитесь повторно использовать код на базе классов и интерфейсов
Научитесь собирать многоразовые шаблоны для ваших собственных проектов Typescript

Требования
Базовые знания ES2015 Javascript

Описание
Typescript — это «супернабор» Javascript. Это означает, что если вы уже знаете Javascript, вы готовы пройти этот курс. Typescript добавляет в Javascript несколько важных функций, включая систему типов. Эта система типов предназначена для того, чтобы помочь вам обнаруживать ошибки во время разработки, а не во время выполнения кода. Это означает, что вы будете вдвое продуктивнее, выявляя ошибки на более ранних этапах разработки. Но помимо системы типов, Typescript также предоставляет несколько инструментов для структурирования больших кодовых баз и написания действительно многоразового кода.

Освоить Typescript, просто прочитав документацию, непросто. Хотя вы, возможно, знаете, что такое «типизированный массив» или «интерфейс», документация не показывают вам, где использовать эти функции или как их эффективно использовать. Цель этого курса — помочь вам понять, почему существует каждая функция Typescript и где именно их использовать.

Ведущие компании с нетерпением ждут разработчиков Typescript. Некоторые из крупнейших веб-приложений сегодня создаются с помощью Typescript. Работодатели изо всех сил пытаются найти инженеров, свободно владеющих этой передовой системой. Хорошее знание Typescript сделает вас гораздо более трудоустроенным, предоставив вам уникальные навыки, которыми обладают немногие другие инженеры.

Планируете создавать собственные приложения? Использование Typescript поможет вам правильно структурировать свой проект с первого дня. В этом курсе вы узнаете, как писать повторно используемый код, уделяя огромное внимание использованию классов и интерфейсов для создания заменяемых «виджетов». Вы сможете перенастраивать свои приложения на лету, чтобы создавать совершенно разные функции с минимальными усилиями.

Но не верьте мне на слово — посмотрите отзывы об этом курсе! Вы увидите, что другие инженеры, как и вы, добились больших успехов и приобрели новое понимание того, как создавать масштабируемые веб-приложения.

Для кого этот курс:

Любой Javascript-разработчик, который хочет понять, как структурировать большие кодовые базы
Не теряйте драгоценное время и записывайтесь на курс прямо сейчас!

Автор: YouRa Allakhverdov
Магистр компьютерных приложений (M. C. A.), Программная инженерия | Харьковский политехнический университет 2001-2006
Мобильный и веб-разработчик
Меня зовут Юра Аллахвердов, я окончил Харьковский политехнический университет по специальности ‘Системное программирование’ в 2006 году и последние несколько лет занимаюсь разработкой мобильных и веб-приложений, а также преподаванием программирования.
Профессия разработчика открыла для меня большие возможности, и я буду рад помочь вам стать разработчиком программного обеспечения.

Понравилась статья? Поделить с друзьями:
  • Инструкция по эксплуатации зарядного устройства орион pw320
  • Диаграмма исикавы руководство
  • Простейшее руководство по фото
  • Denture cleansing tablet инструкция по применению
  • Root touch up wella инструкция по применению