[TS] > Basic (Часть 1) Flashcards

1
Q

Разница между type и interface

A

interface
1) может склеиватся с другими интерфейсом или классом, с тем же именем
2) класс может имплементировать интерфейс

type
1) тайп можем быть примитивом или литералом
2) тайп можем использовать дженерики

($)
Общее:
оба могут описать обьект
оба могут расширять родительский но каждый по своему

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Для чего нужен TypesScript?

A

ТС это надмножество джаваскрипта, которое нам дает преймущества как:
1) статическая типизация
2) подджерка классов и интерфейсов ??
3) проверка приложенния при компиляции
4) хорошая экосистема с IDE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое обобщённые типы (generics)?
https://habr.com/ru/company/ruvds/blog/419993/ (вопрос 2)

A

дженерики - это инструмент, делающий типы не полностью описаными, что дает нам возможность более детально его описать в момент приминения

(пример)
Делаем метод arrayPush, принимающий массив и значение, которые имеют тип дженерика, в момент вызова функции мы обозначим дженерик строкой изза чего код поймет, что работа будет с массивом строк и строкой

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

как работает тип Recrod?

A

Record обозначает обьект как именнованый список
мы задаем тип для ключа и тип для контента под этим ключем

type MyRecord = Record<string, User>;
const usersByName: MyRecord = {
  user[0].name: users[0],
  user[1].name: users[1],
};
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Для чего нужен тип Awaited?

A

Awaited обозначен значение находящиеся внутри промиса
(пример)
~~~
async function asyncFunc(): Promise<string> { return "hell"; }
type MyResolvedType = Awaited<ReturnType<typeof>>;
const result: MyResolvedType = await asyncFunc(); // result = hell
~~~</typeof></string>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly