Эксперементирую с дженериками, пытаюсь понять принцип работы.
В таком виде вроде все работает нормально, но если в массиве поменять одно значение на строку.
Здесь sum + current появляется ошибка:
Operator '+' cannot be applied to types 'string | number' and 'string | number'
Пытался менять описание примерно так и еще несколько вариантов пробовал:
Но ничего не помогает и естественно даже не уверен, что правильно делаю. Как все-таки в таком случае сделать описание дженериками в интерфейсе?
Еще вариант
В общем, ты пока явно плохо видишь границы реакт-компонентов. Напомню: у нас функциональное программирование и реакт-компонент сейчас - это просто функция.
Редактировать то, что у тебя сейчас сделано - смысла мало. Там каша получилась. Вот ПР отправил: https://github.com/Pivkarta/pivkarta.ru-2/pull/3. Принимай и разбирай (что и как работает).
Так же оставил тебе задачку:
>> (там, скорее всего, придется переименовать компоненты DropdownMenuBoxStyled и DropdownMenuStyled, чтобы было логичней, так как сейчас получается, что компонент с более коротким названием является вложенным в компонент с более длинным названием, что противоречит интуитивнопонятному неймингу)
Вот перемеименуй компоненты и шли коммит на ревью.
Спасибо, изучаю!
А вот тут ты вообще очень косо въехал, вызывая <DropdownMenu /> внутри DropdownMenu. Хорошо хоть ты его нигде во внешнем не прописал (явно забыл), иначе ушел бы в бесконечную рекурсию.
И вот еще у тебя ошибки:
$ tsc --pretty --noEmit
src/pages/_App/Layout/MainMenu/index.tsx:27:7 - error TS2322: Type '() => void' is not assignable to type 'FC<{}>'.
Type 'void' is not assignable to type 'ReactElement<any, any> | null'.
27 const MainMenu: React.FC = () => {
~~~~~~~~
src/pages/_App/Layout/MainMenu/index.tsx:137:32 - error TS2304: Cannot find name 'DropdownMenuProps'.
137 const DropdownMenu: React.FC<DropdownMenuProps> = ({
~~~~~~~~~~~~~~~~~
src/pages/_App/Layout/MainMenu/index.tsx:217:32 - error TS2769: No overload matches this call.
Разве ты у себя их не видишь?
А у тебя разве вот такой ошибки нет?
У тебя там сплошная синтаксическая ошибка, у тебя код вообще не валидный (у тебя блок {...} не закрывается корректно).
Дима, привет!
Сейчас гляну.
Николай, привет!
https://github.com/Pivkarta/pivkarta.ru-2/commit/09bfaee950457d7a15aeb1f4a514760b8c4bfb4a
Посмотришь по возможности?
Получилось в своей версии тулзы установить дефолтную версию движка и обеспечить импорт контента в проект.