Данный репозиторий является сопровождающим к вебинарам по Typescript

Автор вебинара: Антон Морев

Для удобства навигации по данному репозиторию рекомендуется идти по истории коммитов и смотреть readme.md каждого коммита.

Подготовка окружения

NodeJS и NPM

Для начала необходимо, чтобы у вас в системе были установлены NodeJS Для проверки введите следующие команды

$ node -v                       
v12.14.1                        
$ npm -v                        
6.14.5                          

Если в консоли увидели ошибки, то установите NodeJS

Установка typescript

Далее необходимо установить зависимости

npm i 

Запуск в режиме отслеживания изменений

Для запуска в режиме разработки достаточно запустить команду

npm run dev

При изменении кода проект автоматически перезапустится

Что происходит в данном примере

На этом этапе мы начинаем знакомиться с дженериками. Старый код запуска сервера мы перенесли в index-old (он нам еще понадобится).

Сам репозиторий реализован в файле src/lib/repository.ts

export class Repository<T> {

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

В текущем примере мы сделали тип Book (файл src/models/book.ts) с обычными полями.

Внутри файла src/index.ts показано как можно работать с этим репозиторием. Что примечательно - благодаря дженерикам мы можем использовать любой тип, интерфейс или класс для наполнения репозитория, что делает этот код типизированным, но типонезависимым одновременно.