Чтобы импортировать файлы SVG в TypeScript, вы можете использовать различные методы в зависимости от вашей среды разработки и требований. Вот некоторые распространенные подходы:
-
Импорт 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 />; };
-
Использование загрузчика файлов.
Другой подход — использовать загрузчик файлов для импорта файлов 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);
-
Встроенный 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. Не забудьте настроить конфигурации и имена пакетов в соответствии с вашими конкретными настройками.