pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Друзья с чего начать в python?

Лучший ответ: 
Если что-то непонятно - лезешь в документацию или гугл.

Худший ответ: Python на Хабре
 Основы
 Продвинутый уровень
 Tips & Tricks
 Размышления о Python
 Всё о декораторах
 Тестирование и отладка
 Параллельный Python и многопоточный
 Интерфейсы
 Функциональный Python
 Метапрограммирование
 Python и редакторы
 Различный практикум

Книга
A Byte of Python (Russian)

Видео уроки на youtube - Nick Parlante(EN)
Google Python Class

И естественно, документация на офф. сайте.(Под windows она идет в chm формате с интерпретатором)
docs.python.org
Вопрос: Зачем нужны побитовые операторы, реальные примеры использования?

Лучший ответ: Упаковка битовых "масок" в целочисленные значения при различных фильтрах.
Хеш/крипт-функционал.
Любой поиск простым наложением с нечёткими совпадениями (текст, изображение, звук).

Худший ответ: Например упаковка 32 значений в целое.
Вопрос: Python или Java код, проще сопровождать в больших проектах?

Лучший ответ: Любой язык годится для больших проектов. Что не годится так слабые программисты, отсутствие архитектуры и автоматизации

Худший ответ: У вас не большой проект
Большой проект имеет деньги на спецов
Исходя из данного предположения, выбирайте тот ЯП, на котором быстрее всего пилятся фичи
Тогда есть хоть како-то шанс, что проект станет большим и в нем появится архитектор или хотя бы мидл, который имеет опыт разработки
Вопрос: Почему не работает Ajax?

Лучший ответ: Вы исполняете код до подключения jQuery. А нужно после.

Худший ответ: значит ваш код вызывается до подключения библиотеки jquery
Проверьте очерёдность подключения файлов
Вопрос: Можно ли заменить GTX 750 на GTX 1050?

Лучший ответ: Можно, материнка не может удерживать директх, это винды приколы

Худший ответ: Можно, возможно придётся обновить bios мат платы, а совместимость с DirectX относятся к операционной системе .
Вопрос: Как реализовать авторизацию на сайте?

Лучший ответ: Создать базу с пользователями. У каждого пользователя должен быть уникальный логин (можно проверить генератором и проверочной рекурсией). В базе хранить нужно не сам пароль а хэшированный или зашифрованный. При входе пароль нужно опять хэшировать и сравнивать хэши пароля в базе и на странице входа. Остальные поля в базе можешь сам составить. У меня это обычно: id, email, login, phone, is_verified, status, passhash, is_deleted

Худший ответ: Возьмите имеющуюся систему авторизации и разберитесь - как она работает. Сделайте у себя аналогично.
Вопрос: Как преобразовать объект в xml?

Лучший ответ: const createXML = obj => Object
  .entries(obj)
  .map(([ k, v ]) => `<ns1:${k}>${v instanceof Object ? createXML(v) : v}</ns1:${k}>`)
  .join('');
UPD. Если нужны переносы строк и отступы, то

const createXML = (obj, tabSize = 2, depth = 0) => {
  const indent = ' '.repeat(tabSize * depth);
  return Object.entries(obj).map(([ k, v ]) =>
    indent +
    `<ns1:${k}>${
      v instanceof Object
        ? `\n${createXML(v, tabSize, depth + 1)}\n${indent}`
        : v
    }</ns1:${k}>`
  ).join('\n');
};

Худший ответ: const createXML = obj => Object
  .entries(obj)
  .map(([ k, v ]) => `<ns1:${k}>${v instanceof Object ? createXML(v) : v}</ns1:${k}>`)
  .join('');
UPD. Если нужны переносы строк и отступы, то

const createXML = (obj, tabSize = 2, depth = 0) => {
  const indent = ' '.repeat(tabSize * depth);
  return Object.entries(obj).map(([ k, v ]) =>
    indent +
    `<ns1:${k}>${
      v instanceof Object
        ? `\n${createXML(v, tabSize, depth + 1)}\n${indent}`
        : v
    }</ns1:${k}>`
  ).join('\n');
};
Вопрос: С чего начать изучать Операционные Системы?

Лучший ответ: Я так понимаю, сначала вопрос звучал как "С чего начать изучать компьютер?", но вы сделали над собой усилие и смогли его немного конкретизировать. Повторите эту итерацию еще раза три - глядишь, получится вопрос, на который реально можно дать ответ.

Худший ответ: С чего начать изучать компьютер?
А. Таненбаум — Архитектура компьютера

С чего начать изучать операцинные системы?
А. Таненбаум — Современные операционные системы
А. Таненбаум — Разработка операционных систем
Вопрос: Как правильно вывести все содержимое массива в файл?

Лучший ответ: Вы перезаписываете файл каждый раз, передавая аргумент 'w'. Конечно, будет только последняя строка
f1 = open("D:/text1.txt", 'w')

s = 'elif call.data == "f{0}": \n \
            FILTER[user_id] = \'{1}\' \n \
            msg = bot.send_message(call.message.chat.id, "Выбран стиль {0}.") \n \
            bot.register_next_step_handler(msg, load) \n \
            bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup = None) \n  \
        '

with open('D:/text1.txt', 'a') as f:
    for i, value in enumerate(list[1:]):
        f.write(s.format(i, value))

Худший ответ: вместо w в open поставь a

в данном случае w перезаписывает файл. a -- флаг для добавления содержимого.
Вопрос: Как правильно определить ширину контейнера и брейкпоинты при верстке?

Лучший ответ: Вот неплохая статья про брейкпоинты. Оттуда же сразу демка на кодпене. 
А на счет ширины контейнера -- это должен был дизайнер решать. Можно ширину в процентах задать и он будет резиновый. Не видя макета сложно что-то конкретное посоветовать

Худший ответ: Использую 320,360,375,480,640,768,800,980,1024,1200,1280px - клиенты обычно остаются довольны
Вопрос: Как скрыть данные токена телеграм бота в открытом репозитории github?

Лучший ответ: Все приватные данные выносятся в конфиг. Конфиг исключается из под контроля git. Пример конфига со звёздочками вместо данных кладется в репозиторий.

В качестве конфига может использоваться обычный *.java класс.

Худший ответ: Вот как это делается через переменные окружения
https://docs.oracle.com/javase/tutorial/essential/...
Вопрос: Какие документы нужны для проверки лицензионности софта?

Лучший ответ: Наших органов скорее будут интересовать документы на приобретение этих лицензий (акты, счёт-фактуры и пр.)

Худший ответ: Юрлица не меняли? По идее достаточно того что его купили и документа о покупке. В общем напрягайте бухгалтерию пусть ставят на учёт.
Вопрос: Как удалять файлы в линукс не тормозя компьютер?

Лучший ответ: Эти вопросы давно уже изучены и вот пара статей на хабре, там практически все известные решения есть, читайте:
Необычное переполнение жесткого диска или как удал...
Так как же удалить миллионы файлов из одной папки?

Худший ответ: Как вариант - сделать скрипт, который будет удалять по одному файлу и делать паузу.
Вопрос: Можно ли создать информер на своём сайте с информацией чужого сайта?

Лучший ответ: Можно.
Через чистый js нельзя, если cors не позволяет. То есть сайт должен разрешить брать с себя инфу. В идеале официально предоставить код информера для вставки на ваш сайт.
На php без проблем. Нужен будет свой парсер. И каждый раз, когда структура информации на сайте аэропорта меняется, парсер нужно будет чинить.
По закону за это ничего не будет. Ведь информация публичная, не охраняется авторским правом, не является персональными данными, и не является противозаконной.

Худший ответ: Решил вопрос самостоятельно этой штукой
Вопрос: Как сделать функцию, которая работала бы с любыми списками?

Лучший ответ: Если следовать обшепринятой логике - номер строиться исходя из лексикографического порядка исходного массива, то все решается в одну строчку:

lt= ['abc', 'apple', 'pen', 'abc', 'pen', 'pc']
lt_num=[sorted(list(set(lt))).index(x) for x in lt]

Результат:
[0, 1, 3, 0, 3, 2]

Худший ответ: items = ['abc', 'apple', 'pen', 'abc', 'pen', 'pc']
Вариант #1:
cache = {}
[cache.setdefault(item, len(cache)) for item in items]
Вариант #2:
from functools import lru_cache
from itertools import count

@lru_cache(maxsize=None)
def enumerate_as_seen(_, counter=count()):
    return next(counter)

list(map(enumerate_as_seen, items))
Вопрос: Обучение Data Science?

Лучший ответ: 1. Сколько времени в день уделять линейной алгебре и как ее изучать самостоятельно?
Не важно, сколько времени уделять, важно - понимать (не запоминать конкретные факты, а именно понимать "что и почему").
Вот мнение (одно из многих) о том, что надо из математики:
https://habr.com/ru/post/432670/Занимаюсь по Лутцу и решаю задачи на codewars и hackerrank. Достаточно ли этого?
Более чем. Но на самом деле, для Data Science понадобятся ОСНОВЫ Python плюс соответствующие библиотеки, в первую очередь Numpy, Matplotlib, Scipy, Pandas. Первую надо понять(!) до перехода к практическим задачам, последние три, а также Scikit-Learn и Tensorflow  можно разбирать параллельно  с собственно Data Science (точнее с Мachine Learning, потому что, например Data Engineering  -  это вообще отдельная тема).
Но! Надо понять, что Мachine Learning - это не программирование на Python (или любом другом языке программирования). Это отдельная наука. А все, что перечислено выше - только легкая "подводка" к  теме.

Худший ответ: Сначала изучи основы статистики, например на stepik - https://stepik.org/course/76
Далее начни какой то курс по мл (или книгу, но если начнешь курс, все равно придется перейти к книгам), если чувствуешь, что есть пробелы в математике, учи математику, чувствуешь что есть проблемы в статистике - учи статистку
Вопрос: Безопасная схема с литиевым аккумулятором?

Лучший ответ: внутреннее сопротивление батарейки нагреваетсяСопротивление это свойство, оно нагреваться не может.Интересует, что может плохого произойтиРазогрев аккумулятора и как следствие - возгорание.
Литий очень сложно потушить, горит очень активно, можно получить сильные ожоги и устроить пожар.
Взрыв - возможен, но не всегда. Сам по себе литий не взрывается, просто повышенное газовыделение в ограниченном объеме. Давлением газа оболочку разрывает. Если оболочка крепкая может довольно прилично разлететься.
Безопасная схема это постоянный контроль за токами заряда, и разряда, и желательно мониторинг температуры.

Худший ответ: Интересует, что может плохого произойти, 
Возгорание, которое крайне трудно потушить. и как от этого защититься. 
Использовать схемы защиты, очевидно же. 2) - жидкость заливает батарейку, КЗ, 
Ничем не отличается от того, что вы написало в первом пункте. Такая же эксплуатация в режиме КЗ. Последствия те же.
Вопрос: Как начать и куда двигаться?

Лучший ответ: Первое, какое направление в программировании можно назвать перспективным?
То, к которому душа лежит. В других вам не опередить тех, кто пришёл туда по призванию.

Второе, это какие особенности есть в работе программиста? Какие качества программиста представляют ценность?
Прежде всего, умение самостоятельно искать ответы на свои вопросы.

Как стать более конкурентно способным?
Пахать без отдыха и продыха.

Фриланс, для новичка - это зло или полезная вещь?
Практически невозможно. И даже если удалось, то лучше не надо, типичный фриланс развития не даёт.

Чего стоит опасаться?
Лёгких путей.

Худший ответ: Фриланс, для новичка - это зло или полезная вещь?

Это единственное, что в 15 тебе светит, по крайней мере есть шанс пробиться... Без опыта, без кейсов и портфолио на работу просто так не возьмут + стоит учитывать сам возраст. Фриланс он чем хорош - поставил аватарку, поработал с деловой перепиской и ву-а-ля, ты уже в кока-кола на аутсорсе (шутка). Сам начинал с фриланса в 18 лет, первые 2 года не сделав ни одного звонка в своей нише, но при этом имел постоянную работу и зп в 150-200$, что для студента в общаге в совокупности со стипендией и играми без финансовых вложений вполне адекватные деньги)
Вопрос: Как корректно сконвертировать ssl-сертификат из .pem в .pfx?

Лучший ответ: Потому что сертификат никаким боком не связан с версией TLS. 
Вам надо в IIS включить поддержку TLS 1.2 и отключить TLS 1.0, TLS 1.1 и SSLv3.

Худший ответ: По поводу IIS и версии TLS - а вы включили вообще поддержку TLS 1.2 в ОС?
Или ручками через реестр или с помощью https://www.nartac.com/Products/IISCrypto/

По поводу конвертации - попробуйте fullchain брать. там внутри и рутовый сертификат и выданный.
Вопрос: Можно ли считать словарь Python базой данных?

Лучший ответ: Словарь нельзя сравнить с реляционной БД, можно с key value store.

Худший ответ: Как выше сказали key value. Но подозреваю что в питоне есть аналоги linq и тогда это реальная реляционная бд.
Вопрос: Не работает gulp, где ошибка?

Лучший ответ: +icon('location'. 'header-address__icon')

Почему я думаю что тут должна быть запятая, а не точка после location. 
Тк тут запятая например: +icon('', 'header-basket__icon')

Худший ответ: Может тут
img(src="static/images/general/logo.svg.svg" - svg.svg
хотя это не причина
Вопрос: Нестабильные сектора на жд, что это значит?

Лучший ответ: Он ползет, ползет, ползет... а потом как прыгнет! И скажет "Привет, я зверь писец! Я пришел в гости к твоему диску!"

Худший ответ: Диск скоро сдохнет и надо его поменять
Вопрос: Как вообще такое сделать в верстке?

Лучший ответ: А макет показать, как обычно, не позволяет режим совершенной секретности, да?
Только что отзвонился Ванге, она говорит, не может такого быть, чтобы нельзя было уменьшить, у вас плёвое дело - с 1600 до 1200 ужать. Это вы еще не ужимали 1900 до 980!!!
Премного восхищен всеми ответившими ниже, которые умудрились с пары слов ТС воссоздать полную картину и дают советы. Мне бы ихний УМ!
А заказчик ваш конечно самодур тот еще, судя по всему, он открывает на двух разных устройствах и сравнивает попиксельно, чтоб вы ни одного блока не посмели утаить)))
Вы тоже не лучше, по вашим словам, у вас был период обсуждения именно этой проблемы, но вы включили  заднюю, а должны были требовать макет под требуемое разрешение. Заказчик с вас не слезет и следующий его запрос внутри текущего бюджета - а впихни-ка ты мне тоже самое еще и в айпад, тыжпрограммист!

Худший ответ: В таких ситуациях я объясняю, что макет для 1920 и на ноуте может немного отличаться, что это нормально.
Но если запариться, то можно и на 1366 сделать один в один макету, просто, уменьшая все элементы на странице
Вопрос: Как работать с сокетами на с++?

Лучший ответ: Уважаемый, 
У вас очень сумеречное понимание сокетов.
1. При чем тут "Веб" из заголовка вопроса? Это обычные TCP. WebSocket это совершенно другое, загляните в документацию.
2. "я не использовал и не создавал структуры sockaddr" - мои глаза меня обманывают?
Без sockaddr вы не смогли бы забиндить порт в сервере, и определить адрес\порт назначения в клиенте, не говоря о протоколе.
3. "я не использовал функцию getaddrinfo()" - круто!!! Вау!! ... и что? 
Функция getaddrinfo(3) объединяет действия функций getipnodebyname(3), getipnodebyaddr(3), getservbyname(3) и getservbyport(3) в одном интерфейсе. Функция getaddrinfo(3) создает одну или несколько структур адресов сокета, которые в дальнейшем могут быть использованы в вызовах функций bind(3) или connect(3) для создания сокета клиента или сервера. 
4. "А структуру и функцию, которую я написал сверху - это нововедение." - КАКУЮ СТРУКТУРУ??? КАКУЮ ФУНКЦИЮ??? void error(const char *msg) - это??? Это потрясающее нововведение! Нобелевскую премию мира и нобелевскую премию по литературе вам! Их все равно сейчас дают людям далеким от мира и от литературы.
5. "Или я что-то не понимаю." - ни-че-го. Ничего вы не понимаете. Прочтите, наконец, документацию по программированию сокетов, ПРЕЖДЕ чем задават вопрос, в котором совершенно непонятно о чем вопрос.
... а еще лучше - бросайте программирование.

Худший ответ: Можно не использовать ни структуры sockaddr, ни getaddrinfo(), ни getipnodebyname() явно и даже можно вообще не знать о них. Они используются в любом случае где-то глубже внутри, т.к. это низкоуровневые, базовые методы работы с сокетами и с сетевыми протоколами в целом. 
Как уже заметили выше, то что вы используете - это не веб-сокеты. Веб-сокеты это более высокоуровневый протокол, чем обычные сокеты. 

P.S. скопированный код из сети не может считаться написанным вами. (хоба)
Вопрос: Рекурсия в JavaScript?

Лучший ответ: Это не нормальное решение прежде всего потому что функции знают о:
1. существовании друг друга
2. существовании некоего правила последовательности их вызова

Такой код называется высокосвязным. Высокосвязный код дорого поддерживать потому что приходится учитывать множество деталей его реализации. Учебники рекомендуют создавать как можно более обособленные функци: так называемые "чистые функции".

Сделать функции чище можно, например, так:

const delay = timeout =>
    Promise(resolve => setTimeout(() => resolve(), timeout));

async function delayedQueue() {
    first();
    await delay(1000);
    second();
    await delay(1000);
    third();
}

delayedQueue();

Как видите, теперь функции, которые необходимо вызвать с задержкой, не подозревают о существовании друг друга, а само правило последовательности их вызова инкапсулировано в отдельной функции delayedQueue.

Худший ответ: одно слово: Promise
Вопрос: Всегда ли нужно использовать фреймворки?

Лучший ответ: нет, не всегда. 

несколько страниц обычно вообще статичны. тут даже цмс не нужна. 
а форма обратной связи элементарно реализуется единственным скриптом. 

отталкиваться нужно от конкретной задачи, а не абстракций.

Худший ответ: Мне кажется что здесь можно обойтись только натяжкой на wordpress
Никто не запрещает.
Несколько страниц с формой быстрей сделать на Laravel.
Вопрос: Где используется c++ сейчас?

Лучший ответ: 
Поисковые движки - Яндекс, Google, Bing написаны на C++
LLVM
Библиотеки машинного обучения - TensorFlow, MXNet
Антон Полухин — Незаменимый С++


Худший ответ: В ОС, в оптимизированных кроссплатформенных приложениях, например Telegram клиент написан на C++, и везде где требуется высокая производительность, например в Android NDK.
Вопрос: Как вам такая концепция, когда code review делают не опытные, а новички?

Лучший ответ: P. S. Я изобретатель оружия, военный теоретик... и программист-джуниор.
Скорее, мастер кривых аналогий и плохого стиля.

По теме: подумайте, будет ли бизнес оплачивать время зелёного джуна (даже эти копейки), который будет впустую пялиться в чужой код. Впустую, потому что не поймёт ничего.
И тема автоматом закроется.

Худший ответ: (сон по 4 часа в сутки, кофе литрами до болей в сердце и все такое) и быстро заслужить одобрение и даже повышение.
что за дурацкое мировоззрение, гробить свое юношество \ молодость на то чтобы побыстрей изучить чтото, ну не до такой же степени, ну отучитесь вы сами в институте и почитайте книжек, и будете уже не джун а мидл с 1-3 летним опытом, если конечно делали курсовые и дипломы и свои проекты для интереса

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

А "внимательно читать код" - это автоматически дает побочный эффект - делается дополнительный code review.
как выше написал - любой изучает, а не только джуниор
что теперь всем делать код-ревью? все и делают, но не до такой степени как это понимается в истинном смысле

результат код-ревью от профи - будет подробный разбор косяков в коде и способов его рефакторинга \ переписывания

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

если ревью не делается опытными, то на это есть причины нехватки времени, и вас наняли не для этого потому что ваша эффективно 0 будет в этом ревью, а если будет надобность - есть кому провести качественный ревью

и тесты по той же причине - или не пишутся, потому что нет эффективности ни от кого (времени мало, бизнесу надо быстрей и задачи не такие уж чтоб все юнит-тестить), и тем более не будет от джуна, а если вдруг планы поменяются - найдется опытный чтобы написать эти тесты
Вопрос: Какой выбрать ВУЗ для дистанционного обучения?

Лучший ответ: Какой выбрать ВУЗ для дистанционного обучения?
Никакой.

Запомните: дистанционное "образование" - это не образование. Это всё равно как поесть дистанционно.

Худший ответ: Полно где есть дистанционка. Про качество конечно не знаю.   Тусур https://fdo.tusur.ru
МЭИ https://mpei.ru/Structure/Universe/idlse/Pages/enr...
Росдистант https://www.rosdistant.ru/what/bakalavriat/priklad...
Вопрос: Почему JSON не валиден?

Лучший ответ: последняя запятая лишняя

Худший ответ: {
  "input": {
    "qwe": "1",
    "asd": "1"
  }
}
Запятую в конце уберите.
Вопрос: Нужно ли «чистить» обработчики событий в JavaScript?

Лучший ответ: Вы неправильно делаете.
Повесьте эти обработчики в единичном экземпляре и в них закрывайте все модальные окна.
Ну если не хотите то да, чистить надо, потому что с каждым новым окном вешается дополнительный обработчик и всё это в конечном итоге приводит к  лагам и забиванию памяти.

Эх, как же я скучаю по временам простых дизайнов сайта без ajax, jquery, без эффектов, с alert-ами и confirm-ами...

Худший ответ: Это имеет смысл только в том случае если у вас сильно нагружен сайт.
Если это не так, то при загрузке вешаете 3 обработчика и не паритесь
Вопрос: Как передавать сигналы между ардуино?

Лучший ответ: Попробуйте соединить светодиод и кнопку.
Например так.
Синяя подтяжка - нет сигнала digitalRead(A0) вернёт HIGH, зелёная подтяжка - вернёт LOW.

Худший ответ: Соединить две ардуины цифровыми пинами (можно через оптрон для гальванической развязки). Один на выход, второй - на вход, и на одной выставлять высокий уровень при выполнении условия - а на второй ловить событие высокого уровня на соответствующем входе, и выполнять соответствующий код
Вопрос: Наименование вакансии?

Лучший ответ: На техлида похоже https://techrocks.ru/2018/03/24/8-engineering-lead...

Худший ответ: - дорабатывался разными командами разработчиков
- Документации по продукту никакой нет
- Новые фичи заливали сразу на прод
- Новые сотрудники сейчас делают точно также
как называется вакансия человека, который следит за всеми этими моментами и устраняет их?
Вопрос: Как выводить сообщение вместо рекламы, если стоит блокировщик рекламы?

Лучший ответ: Это anti-adblock-скрипты.
И все нормальные люди с таких сайтов обычно сразу уходят, посылая в пешее эротическое жадных владельцев.

Худший ответ: 
Как не пускать на сайт при включенном adblock/ubl...
Вопрос: В JavaScript. Как сконвертировать объект в виде строки в сам объект?

Лучший ответ: const text = "{a:[1,2,{b:3}],c:{d:4},\"e\":\"qqq\"}";

const json = text.replace(/(?<=[\{,]\s*)([^",\{]*?)(?=\s*:)/g, a=>{
	return '"'+a+'"';
});

console.log(text); // {a:[1,2,{b:3}],c:{d:4},"e":"qqq"}
console.log(json); // {"a":[1,2,{"b":3}],"c":{"d":4},"e":"qqq"}

const obj = JSON.parse(json);

Александр, вот мой вариант, тоже наверное может сломаться (если в названии ключа должны быть запятая или левая фигурная скобка, а так же если одно из значений будет содержать что то типа "{cat: 5}"), но все остальные варианты отработает на ура

Худший ответ: ближе всего к реальности будет этот вариант:
var str = "{cat: 5}";
var items = [];

var tokens = str.match(/{[^}]+}/g);
for (var i = 0; i < tokens.length; i++) {
    var segments = tokens[i].split(',');
    var item = {};
    for (var j = 0; j < segments.length; j++) {
        var pair = segments[j].replace(/{|}/, '').split(':');
        item[pair[0].trim()] = pair[1];
    }
    items.push(item);    
}

var obj = items;
console.log(obj);
просто выходные данные подточите потом, и получите отличный объект.
Вопрос: Как добавить открытие меню по свайпу?

Лучший ответ: на элементы списка вешаешь touchstart/touchend ивенты -> сравниваешь координаты -> делаешь, что нужно

Худший ответ: https://github.com/sandstreamdev/react-swipeable-list имеет поддержку TS. Что именно у вас не получается?