Ответы пользователя по тегу JavaScript
  • Как найти что то в массиве?

    @Pacemaker76
    // пример массива объектов
    const arr = [
      {
        infoAboutIt: {
          Info: "info",
        },
        infoAboutMe: {
          Lol: "lol",
        },
      },
      {
        infoAboutIt: {
          MoreInfo: "more info",
        },
        infoAboutMe: {
          MoreLols: "more lols",
        },
      },
    ];
    
    const checkInputValue = (value, arr) => {
      for (let i = 0; i < arr.length; i++) {
        const obj = arr[i];
        if (obj[value]) {
          return obj[value];
        }
      }
      return "Нет такого свойства в массиве объектов.";
    }
    
    // пример использования функции
    const userInput = "infoAboutMe";
    const result = checkInputValue(userInput, arr);
    console.log(result); // выведет: { "Lol": "lol" }
    
    const invalidInput = "invalid";
    const invalidResult = checkInputValue(invalidInput, arr);
    console.log(invalidResult); // выведет: "Нет такого свойства в массиве объектов."


    можно переписать код. записывать в переменную userInput результаты ввода через input и проверять его с помощью функции, которая запускает цикл, итерирует массив объектов и находит по значению или не находит
    Ответ написан
  • Как использовать добавленный typescript в React, не изменяя расширение каждого компонента на tsx?

    @Pacemaker76
    А можешь скинуть свой package.json? Что-то мне кажется, что у тебя типы не подгружены

    Также в tsconfig.json убери "skipLibCheck": true, так как он отключает проверку файлов объявлений типов, что не позволяет TypeScript правильно определять типы в ваших компонентах.

    Проблема заключается в том, что вы пытаетесь подключить модули .jsx в файле .tsx, и TypeScript не может найти соответствующие файлы декларации для этих модулей. Вы создали файл typings.d.ts, чтобы попытаться решить эту проблему, но указали неправильное имя модуля.

    Вам следует изменить файл typings.d.ts следующим образом:

    declare module './components/Header/Header.jsx' {
    import { FC } from 'react';
    const Header: FC;
    export default Header;
    }

    declare module './components/Main/Main.jsx' {
    import { FC } from 'react';
    const Main: FC;
    export default Main;
    }
    В этом случае корректно указаны модули для файлов компонентов: Header.jsx и Main.jsx. Обратите внимание на добавление расширения .jsx в имена модулей.

    Теперь в вашем файле App.tsx подключение модулей .jsx должно проходить без ошибок:

    import './App.css';
    import Main from './components/Main/Main.jsx';
    import Header from './components/Header/Header.jsx';
    import React from 'react';

    function App(): JSX.Element {
    return (
    < className="App">




    );
    }

    export default App;
    Убедитесь, что имя каждого модуля в вашем файле typings.d.ts соответствует имени модуля, указанному при импорте в App.tsx.
    Ответ написан
    3 комментария