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

preview_player
Показать описание
#YauhenK #webDev #TypeScript

Всех приветствую в курсе «TypeScript».
В данном видеокурсе мы с вами рассмотрим возможности языка строгой типизации - TypeScript. Разберём его основные фишки и ключевые отличия от JavaScript. Изучим такие понятия, как перечисления (Enum), интерфейсы, пространства имён. Рассмотрим набор нативных утилит, которые предоставляет сам язык.

✒ Репозиторий курса:

✒ Полезные ссылки:

✒ Полный список готовых и планируемых курсов:

✒ Автор курса:

Рекомендации по теме
Комментарии
Автор

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

MegaVaNushka
Автор

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

aipronator
Автор

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

PieceOfInternet
Автор

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

harshandfair
Автор

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

delysidcolor
Автор

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

react_js
Автор

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

alexandertikhonov
Автор

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

world_newsreels
Автор

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

nadiiabeskurskaya
Автор

спасибо за видео! только не понял чем интерфейсы мощнее типов)
следующий код также прекрасно работает:


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);


типы тоже можно расширять через & и | (читай наследовать)
и, как мы видим выше, имплементировать

vitabramov
Автор

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

andreiihomenko
Автор

Нехватает обьяснения что интерфейс даёт возможность создать переменную 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 теряет функциональность после инстанцирования в зСоме

dmytroyurchenko
Автор

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

ex-xghh
Автор

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

antivirus
Автор

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

readermangas
Автор

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

igors
Автор

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

YuriiKratser