Импорт файлов SVG в TypeScript

Чтобы импортировать файлы SVG в TypeScript, вы можете использовать различные методы в зависимости от вашей среды разработки и требований. Вот некоторые распространенные подходы:

  1. Импорт SVG как компонента React:
    Если вы используете React с TypeScript, вы можете использовать пакет @svgr/webpackдля импорта файлов SVG как React. компоненты. Сначала установите необходимые зависимости:

    npm install @svgr/webpack --save-dev

    Затем настройте файл конфигурации веб-пакета для обработки импорта SVG:

    module.exports = {
     // ...
     module: {
       rules: [
         // ...
         {
           test: /\.svg$/,
           use: ['@svgr/webpack'],
         },
       ],
     },
    };

    Теперь вы можете импортировать файлы SVG и использовать их в качестве компонентов React:

    import { ReactComponent as MyIcon } from './path/to/icon.svg';
    // Usage in JSX
    const App = () => {
     return <MyIcon />;
    };
  2. Использование загрузчика файлов.
    Другой подход — использовать загрузчик файлов для импорта файлов SVG в качестве URL-адресов. Этот метод не является специфичным для TypeScript и может использоваться в любом проекте JavaScript. Установите необходимые пакеты:

    npm install file-loader --save-dev

    Настройте файл конфигурации веб-пакета для обработки импорта SVG:

    module.exports = {
     // ...
     module: {
       rules: [
         // ...
         {
           test: /\.svg$/,
           use: ['file-loader'],
         },
       ],
     },
    };

    Импортировать файлы SVG как URL-адреса:

    import myIconUrl from './path/to/icon.svg';
    // Usage
    const img = document.createElement('img');
    img.src = myIconUrl;
    document.body.appendChild(img);
  3. Встроенный SVG:
    Если вы предпочитаете встроить код SVG непосредственно в файл TypeScript, вы можете использовать такой инструмент, как svg-inline-loaderили raw- загрузчик. Установите пакет:

    npm install svg-inline-loader --save-dev

    Настройте файл конфигурации веб-пакета:

    module.exports = {
     // ...
     module: {
       rules: [
         // ...
         {
           test: /\.svg$/,
           use: ['svg-inline-loader'],
         },
       ],
     },
    };

    Импортируйте файлы SVG и используйте их как встроенный код:

    import myIcon from '!!svg-inline-loader!./path/to/icon.svg';
    // Usage
    const div = document.createElement('div');
    div.innerHTML = myIcon;
    document.body.appendChild(div);

Это некоторые часто используемые методы импорта файлов SVG в проекты на основе TypeScript. Не забудьте настроить конфигурации и имена пакетов в соответствии с вашими конкретными настройками.