[TS] > Basic (Часть 1) Flashcards
Разница между type и interface
interface
1) может склеиватся с другими интерфейсом или классом, с тем же именем
2) класс может имплементировать интерфейс
type
1) тайп можем быть примитивом или литералом
2) тайп можем использовать дженерики
($)
Общее:
оба могут описать обьект
оба могут расширять родительский но каждый по своему
Для чего нужен TypesScript?
ТС это надмножество джаваскрипта, которое нам дает преймущества как:
1) статическая типизация
2) подджерка классов и интерфейсов ??
3) проверка приложенния при компиляции
4) хорошая экосистема с IDE
Что такое обобщённые типы (generics)?
https://habr.com/ru/company/ruvds/blog/419993/ (вопрос 2)
дженерики - это инструмент, делающий типы не полностью описаными, что дает нам возможность более детально его описать в момент приминения
(пример)
Делаем метод arrayPush, принимающий массив и значение, которые имеют тип дженерика, в момент вызова функции мы обозначим дженерик строкой изза чего код поймет, что работа будет с массивом строк и строкой
как работает тип Recrod?
Record обозначает обьект как именнованый список
мы задаем тип для ключа и тип для контента под этим ключем
type MyRecord = Record<string, User>; const usersByName: MyRecord = { user[0].name: users[0], user[1].name: users[1], };
Для чего нужен тип Awaited?
Awaited обозначен значение находящиеся внутри промиса
(пример)
~~~
async function asyncFunc(): Promise<string> { return "hell"; }
type MyResolvedType = Awaited<ReturnType<typeof>>;
const result: MyResolvedType = await asyncFunc(); // result = hell
~~~</typeof></string>