TypeScript #9 Интерфейсы (Type Interface)

Поділитися
Вставка
  • Опубліковано 6 тра 2020
  • #YauhenK #webDev #TypeScript
    Всех приветствую в курсе «TypeScript».
    В данном видеокурсе мы с вами рассмотрим возможности языка строгой типизации - TypeScript. Разберём его основные фишки и ключевые отличия от JavaScript. Изучим такие понятия, как перечисления (Enum), интерфейсы, пространства имён. Рассмотрим набор нативных утилит, которые предоставляет сам язык.
    ✒ Репозиторий курса:
    ✔ github.com/YauhenKavalchuk/ty...
    ✒ Полезные ссылки:
    ✔ TypeScript (документация): www.typescriptlang.org
    ✔ Sandbox (песочница): www.typescriptlang.org/play/i...
    ✔ Typescript Utils (утилиты): www.typescriptlang.org/docs/h...
    ✒ Полный список готовых и планируемых курсов:
    ✔ Trello: trello.com/b/R6rD7qq8
    ✒ Автор курса:
    ✔ UA-cam: / yauhenkavalchuk
    ✔ Instagram: / yauhenkavalchuk
    ✔ Twitter: / yauhenkavalchuk
    ✔ VK: YauhenKavalchuk
    ✔ LinkedIn: / yauhenkavalchuk
    ✔ GitHub: github.com/YauhenKavalchuk
    ✔ VK (Группа): webdevcom
    ✒ Поддержать развитие канала: github.com/YauhenKavalchuk/yo...

КОМЕНТАРІ • 69

  • @timothyrebesh5092
    @timothyrebesh5092 4 роки тому +7

    Отлично преподнес материал!

  • @user-bh6mc8pd8g
    @user-bh6mc8pd8g 3 роки тому +2

    просто то что нужно !

  • @taran_dm
    @taran_dm 2 роки тому +6

    Отлично! Спасибо за труд!

  • @wqqtm3584
    @wqqtm3584 2 роки тому +1

    Спасибо за уроки)👍

  • @melsvagharshyan
    @melsvagharshyan Рік тому +1

    Спасибо за уроки💙

  • @MegaVaNushka
    @MegaVaNushka 2 роки тому +7

    ну просто максимально хорошее изложение материала!

  • @user-yh1ig8bl8s
    @user-yh1ig8bl8s 3 роки тому +2

    спасибо, очень информативно

  • @aipronator
    @aipronator 3 роки тому +5

    Спасибо за видео. Что можно улучшить:
    1) Привести практический пример, где без интерфейсов не обойтись. Иначе непонятно зачем они вообще нужны.
    2) На 3:11 говорится про проверку на лишнее свойство в интерфейсе (компилятор выкинет ошибку), однако на 5:05 , когда речь про классы, то уже можно добавлять неограниченное кол-во свойств, которые не описаны в интерфейсе. Обучаюсь, пока вводит в ступор
    3) Еще показалось что самое подходящее слово для понимания, что такое интерфейс - это шаблон, по которому должны создаваться объекты. Вроде оно не звучало в видео

    • @__kawaii
      @__kawaii Рік тому

      Интерфейсы вообще везде нужны)

  • @yuriinadilnyi3029
    @yuriinadilnyi3029 3 роки тому

    extremely cool) nice going

  • @baikalbear7960
    @baikalbear7960 3 роки тому

    Good video, thanks

  • @Zalupa501
    @Zalupa501 2 роки тому +1

    Супер

  • @annpristavka1542
    @annpristavka1542 Рік тому

    Спасибо ❤

  • @user-mu4my8fq2e
    @user-mu4my8fq2e 2 роки тому +1

    Кайф!

  • @react_js
    @react_js Рік тому

    спасибо за уроки, четко все. не скучно. скучать не успеваю ахах

  • @user-gx7kf9um9x
    @user-gx7kf9um9x 3 роки тому

    Спасибо

  • @harshandfair
    @harshandfair 2 роки тому +7

    отличаня подача материала, жаль я в начале изучения ts не наткнулся на ваш канал :)

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 роки тому +1

      Спасибо за отзыв

    • @user-th4qi8iv3q
      @user-th4qi8iv3q Рік тому

      как успехи

    • @swaxshow8404
      @swaxshow8404 11 місяців тому

      @@user-th4qi8iv3qя его знакомый, он погиб.

    • @KivanV
      @KivanV 8 місяців тому

      @@swaxshow8404 где доказательства? приведи доказательства хоть какие-нибудь

  • @PieceOfInternet
    @PieceOfInternet 7 місяців тому

    Спасибо за информативный урок!
    От себя добавлю, что интерфейсы с одинаковыми названиями "склеиваются" и если имплементировать такой тип интерфейса, то придётся реализовать все сущности внутри данных интерфейсов

    • @YauhenKavalchuk
      @YauhenKavalchuk  7 місяців тому

      Всегда пожалуйста. Спасибо за уточнение

  • @delysidcolor
    @delysidcolor 6 місяців тому

    Yauhen - читается как Яухен, ну или более понятно - Юхен))) Я думал вы швед))) За уроки спасибо, очень полезные

  • @nursultankulpubekov3262
    @nursultankulpubekov3262 3 роки тому +4

    В общем и целом )))
    - А. Щербаков

  • @world_newsreels
    @world_newsreels Рік тому

    Спасибо большое за видео. Как то пропустил для себя наследование в интерфейсах, …

  • @alexandertikhonov4389
    @alexandertikhonov4389 2 роки тому +2

    В примере type User { name: string ... - между User и { должно быть = иначе Parsing error: '=' expected.

  • @rikithikatakizu2
    @rikithikatakizu2 4 роки тому

    спасибо за видео! только не понял чем интерфейсы мощнее типов)
    следующий код также прекрасно работает:
    type NameType = {
    readonly name: string;
    };
    type AgeType = {
    readonly age: number;
    };
    class Person implements NameType, AgeType {
    readonly age: number;
    readonly name: string;
    constructor(name: string, age: number) {
    this.age = age;
    this.name = name;
    }
    }
    const John = new Person('John', 30);
    console.warn(John);
    -----
    типы тоже можно расширять через & и | (читай наследовать)
    и, как мы видим выше, имплементировать

    • @YauhenKavalchuk
      @YauhenKavalchuk  4 роки тому

      Можете погуглить эту тему. Там целый список отличий. Но по факту, разница для обычных проектов практически не заметна

  • @andreiihomenko8859
    @andreiihomenko8859 Рік тому

    немного опечатка type должен быть
    type User = {
    name: string
    age: number
    }

  • @sharn3000
    @sharn3000 4 роки тому +5

    1:14 type User {} забыл =

  • @dmytroyurchenko200
    @dmytroyurchenko200 2 роки тому

    Нехватает обьяснения что интерфейс даёт возможность создать переменную Some типа интерфейс SomeIntf, которая может принимать в себя все инстансы классов, которые реализуют интерфейс SomeIntf
    Также не хватает про интерфейс экстенд класс. у которого поля приват и протектед
    Пример кода ниже
    interface ClockInterface {
    currentTime: number;
    }

    class Clock1 implements ClockInterface {
    currentTime: number;
    constructor() {
    this.currentTime = 10;
    }
    }
    class Clock2 implements ClockInterface {
    currentTime: number;
    constructor() {
    this.currentTime = 20;
    }
    }
    let zSome : ClockInterface = new Clock1();
    console.log(zSome);
    zSome = new Clock2();
    console.log(zSome);
    Также не раскрыта тема тайпкаста ссылочных типов данных, например если мы в Клок1 мы добавим свое лишее любое поле, то в зСоме его не будет этого лтшнего полч, происходит ссужение ссылочного типа потому что Клок1 теряет функциональность после инстанцирования в зСоме

  • @readermangas
    @readermangas 2 роки тому

    Как можно с помощью тайпскрипта приписать css class строке ну или обьекту

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 роки тому

      Это есть в курсе React + TypeScript

  • @nadiiabeskurskaya8233
    @nadiiabeskurskaya8233 Рік тому +1

    Зачем создавать класс с данными, он же является шаблоном, а не объектом. На основании класса должна быть возможность создавать инстансы с разными данными. Интерфейс и класс это должны быть абстракции. Или я чего-то не понимаю?

  • @antivirus401
    @antivirus401 Рік тому

    А какой разница между interface и abstract?

    • @YauhenKavalchuk
      @YauhenKavalchuk  Рік тому

      Можете тут посмотреть ua-cam.com/video/VjGdjqyXbhg/v-deo.html

    • @react_js
      @react_js Рік тому

      как минимум пишутся по разному ахах

  • @iGotton
    @iGotton 4 роки тому

    +

  • @ex-xg5hh
    @ex-xg5hh Рік тому

    Интерфейсы не мощнее типов, всё как раз наоборот. Тип это мощный универсальный инструмент, а интерфейс инструмент узкоспециализированный. Он немного удобнее в своих задачах, но фич имеет меньшее.

  • @igors1208
    @igors1208 2 роки тому

    ... статик метод класса как описать в интерфейсе? гуглил-гуглил. ничего не нашел толкового и простого.... Всё какието - вундервафли через дженерики и декораторы...

  • @YuriiKratser
    @YuriiKratser 4 роки тому +3

    Здравствуйте, выскажитесь пожалуйста к Дню Победы над немецко-нацистским захватчиком.

    • @user-ir1ei2mt4f
      @user-ir1ei2mt4f 3 роки тому +1

      а как эта тема относится к тематике канала?

    • @YuriiKratser
      @YuriiKratser 3 роки тому

      @@user-ir1ei2mt4f я прошу прощение, а какое отношение имеет пшеница к металопластику?