ํฐ์คํ ๋ฆฌ ๋ทฐ
TS
ํ์ ์คํฌ๋ฆฝํธ ์์์ svg ํ์ผ์ ์ปดํฌ๋ํธ๋ก์ importํ ๋ ๋ฌธ์
choi95 2022. 4. 11. 21:13๋ฌธ์
ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ํ๋ก์ ํธ ๋ด์์ svg ํ์ผ์ ์ปดํฌ๋ํธ๋ก์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
import { ReactComponent as ProfileIcon } from '/images/icon-profile.svg';
ํ์ง๋ง ํด๋น ์ฝ๋์์ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.
"*.svg"' ๋ชจ๋์ ๋ด๋ณด๋ธ ๋ฉค๋ฒ 'ReactComponent'์ด(๊ฐ) ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ
์คํ์ค๋ฒํ๋ก์ฐ์์ ๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์๊ณ ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.https://stackoverflow.com/questions/54121536/typescript-module-svg-has-no-exported-member-reactcomponent
custom.d.ts ํ์ผ์ ์์ฑํด์ฃผ๊ณ ํด๋น ํ์ผ ๋ด์์ ๋ชจ๋ svg ํ์ผ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ด ์์ฑ์ ์ค์ ํด ์ฃผ์๋ค.
declare module '*.svg' {
import React = require('react');
export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
const src: string;
export default src;
}
๋ํ ts ์ปดํ์ผ๋ฌ๊ฐ ts|tsx ํ์ฅ์ ์ฒ๋ฆฌํ๋๋ก tsconfig.json์ custom.d.ts๋ฅผ ํธ์ถํ๋๋ก ํด์ฃผ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
{
"compilerOptions": {
( ... )
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
"next.config.js",
"custom.d.ts",
"styles",
"pages",
"public"
],
( ... )
}
'TS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ