Изменить приведение переменных к типу на более правильное решение

Завершена
Планируемый запуск: Дата начала: Планируемое завершение: Дата завершения: 24.11.2021

Описание задачи

{"blocks": [{"key": "b0o45", "data": {}, "text": "В miniwar уткнулся в неправильное решение с приведением переменной к типу, причем дважды. Не нашел ,как решить по другому. ", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "1j5c9", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "b9iun", "data": {}, "text": "https://github.com/linklib/miniwar/blob/c76bcab017e9984e5fe683981234c01e8545a56f/src/pages/Catalog/View/index.tsx#L17", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 0, "length": 117, "offset": 0}], "inlineStyleRanges": []}, {"key": "c6tv0", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "bd1ob", "data": {}, "text": "https://github.com/linklib/miniwar/blob/841974668af3fdb04df7283e8d4bd2db19452bd1/src/pages/Catalog/index.tsx#L18", "type": "unstyled", "depth": 0, "entityRanges": [{"key": 1, "length": 112, "offset": 0}], "inlineStyleRanges": []}], "entityMap": {"0": {"data": {"url": "https://github.com/linklib/miniwar/blob/c76bcab017e9984e5fe683981234c01e8545a56f/src/pages/Catalog/View/index.tsx#L17"}, "type": "LINK", "mutability": "MUTABLE"}, "1": {"data": {"url": "https://github.com/linklib/miniwar/blob/841974668af3fdb04df7283e8d4bd2db19452bd1/src/pages/Catalog/index.tsx#L18"}, "type": "LINK", "mutability": "MUTABLE"}}}

Дима, просьба: если есть ошибки, выливай с --no-verify их. А то я запустил проверку типов, а ошибок нигде нет. Пришлось в коммитах искать и у сбея по файлам. Конечно, это не сложно, но все-таки по ошибкам проще. А проблема у тебя простая: тут какой тип? string | undefined А ты что передаешь? Массив строк здесь явно лишний. Да, в УРЛ GET-параметры могут быть не только просто строки, но и массивы. Вот если ты в титл хочешь передать, то тебе надо исключить массивы, или привести их к строке. Первый вариант: Здесь если есть значение и тип этого значения - строка, то ее и получаем. В противном случае undefined. То есть чтобы тут ни пришло кроме строки, оно будет заменено на undefined. Тайпскрипт такие конструкции понимает и здесь ему четко ясно: title - это строка или undefined. Обрати внимание на то, что здесь условие двойное. Первое - это проверка на значение. То есть если на вход придет пустая строка, она не будет соответствовать этому значению и в итоге будет undefined. Но ежели ты хочешь получать в том числе и пустую строку (что зависит от логики), то следует делать так: Здесь title может получить в том числе пустую строку. Второй вариант: Здесь, помимо предыдущей проверки, добавляется проверка на массив. Если значение - массив, то мы возвращаем его элементы, объединив запятой, используя метод Array.prototype.join(). Собственно, решение второй ошибки точно такое же.

Пожалуйста!

Наткнулся тут еще на один вариант решения:) Дока: https://developer.mozilla.org/ru/docs/Web/API/URLSearchParams Метод .get() возвращает string | null

Спасибо! Изучаю!!