Дэн Щербаков ⚛️
95 subscribers
20 photos
49 links
Канал для фронтенд-разработчиков о том, как развиваться и увеличивать зарплату.

Senior Frontend Developer с 6 годами опыта. За этот период увеличил зарплату почти в 7 раз.

Начинайте тут: https://yangx.top/code_lab/280
加入频道
Про Тайпскрипт

Типы указываются после имени переменной или перед {} для функций через двоеточие. Логика проста: именуем сущность и указываем, что возвращает.

Какие бывают типы:

- Примитивные: строки, целые числа, числа с запятой, булевы...
- Составные из нескольких примитивов: number | string
- Массивы, объекты и т.д.
- Кастомные (алиасы):
Login = string | undefined;
const login: Login = ...
- Для функций: любой примитив, либо Never (функция никогда не доходит до return), либо void (ничего не возвращает).
- Null и undefined
- функция при описании интерфейсов: ()

Интерфейсы

Это схематическое типирование обязательных и необязательных полей объекта. Пример:

interface Table {
readonly countertop: boolean
tableLegs: number
tablecloth?: string
}

Далее интерфейс присваивается объекту, и тот может быть определен только по его схеме.
Прочтем построчно поля объекта:
1. неизменяемое обязательное поле "столешница"
2. обязательное поле "ножки стола"
3. необязательное (знак вопроса перед двоеточием) поле "скатерть"

Присвоить интерфейс можно тремя способами:
- const obj: Interface = { ... } (объект описывается)
- const obj = {} as Interface; (объект объявлен пустым)
- const obj = <Interface>obj{} (объект также пуст)

Интерфейсы могут наследоваться:

interface Int2 extends Int1 {
...все поля Int1 под капотом...
getSum: () => number // обязательное поле-функция, возвращающее целое число
}

Также они могут описывать классы. Для этого используется ключевое слово implements:

class Car implements ICar {
...обязательные поля класса...
}

Хорошая практика - называть интерфейсы с буквы I, как у Эпл, только с большой.

Также можно описать сразу все типы полей объекта по ключу:
interface ICss = {
[key: string]: string...
}

#TypeScript