У меня есть проект React, написанный на JS, который я конвертирую в TS. Используя JS, это работает:
import { ReactComponent as IconPerson } from '../../../icons/person.svg';
Используя TS, я получаю эту ошибку:
Не удается найти модуль '../../../icons/person.svg' или его соответствующие объявления типов.
Я добавил следующее в новый файл index.d.ts:
declare module '*.svg';
Я также добавил файл index.d.ts в массив include в моем tsconfig.json:
{
include: ["src", "**/*.ts", "**/*.tsx", "index.d.ts"]
}
Что мне не хватает?
const svg = require("../../../icons/person.svg") as string; Можно попробовать?
вы используете вебпак?
@monim Да, но это входит в пакет react-scripts, так как я использую приложение Create React.





Это работает для меня:
declare module '*.svg' {
import React = require('react');
export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
}
Кредит: https://stackoverflow.com/a/54122106/2262604
Мне кажется странным создание переменной ReactComponent, но я больше не получаю ошибок TS.
Отвечает ли это на ваш вопрос? Невозможно импортировать файлы svg в машинописный текст