… что является аналогом такой sql-команды, например:
SELECT * FROM users AS u WHERE u.user_id = 2;
Но что, если нужно получить в Prisma - только определенный набор колонок? При помощи sql-команды это делается просто:
SELECT u.user_name, u.user_gender, u.user_birthday FROM users AS u WHERE u.user_id = 2;
Как же выполнить точно такой же запрос - в Prisma? Это можно сделать при помощи дополнительной опции select.
В принципе - в оф. доке все описано - “… select defines which fields are included in the object that Prisma Client returns …” - “… select определяет, какие поля будут включены в объект, который возвращает Prisma Client …”.
Есть такой отличный музыкальный плейер - CMUS; прелесть его в том, что он - консольный, легковесный; висит в фоновом режиме - и играет тебе музыку. Он богат функционалом, но вот его команды - приходится запоминать.
Шаги для создания playlist и папки с музыкой\аудиокнигой. Команды у CMUS - vim-подобные, начинаются с символа двоеточия.
Создание самого playlist’а
Достаточно выполнить такую командой - в любом окне CMUS:
:pl-create my-awesome-playlist
Переход в окно с playlist’ами
Жмем кнопочку с циферкой 3 - чтобы перейти в окно, в котором отображаются все playlist’ы - они будут слева, в колонку расположены. Подводим под вновь созданный playlist курсор (arrow-keys) и жмем Space, чтобы выделить этот playlist.
Добавление файлов в playlist
Вводим команду - для добавления файлов в выделенный playlist. В моем случае - это папка с файлами аудиокниги:
:add -p ~/Music/awesome-audiobook/
Единственное неудобство - CMUS не понимает пути к файлам, если они написаны кириллицей, не латиницей; приходится заранее - переименовывать папку, перед ее добавлением в playlist CMUS. По крайней мере - я пока не нашел, как заставить CMUS понимать кириллицу в путях.
Когда команда выполнится - в правой колонке окна под номером 3 - появится список аудио-файлов, которые привязаны к данному playlist’у. Можно переходить курсором на этот список - и пользоваться.
… здесь поле type - является таким связующим звеном; такое поле называется дискриминантом.
Прелесть такого объединения типов заключается в том, что можно проверять значение этого поля и в зависимости от результата - выполнять нужное действие. Например, можно создать такую функцию calcArea:
Главное преимущество использования интерфейса в TypeScript - то, что в скомпилированном JS-коде не остается следов использования интерфейса; результирующий код - не утяжеляется:
… однако, использовать оператор instanceof в данном случае уже не получится - будет ошибка ‘Person’ only refers to a type, but is being used as a value here.