파일 import
`logo.png`, `main.css`를 모듈처럼 가져온다.
TypeScript는 png, svg, css 같은 파일 import 결과를 스스로 알지 못한다. `declare module '*.ext'`는 import 결과 타입을 알려주고, 실제 URL·클래스 맵·데이터 변환은 번들러가 처리한다.
`logo.png`, `main.css`를 모듈처럼 가져온다.
확장자별 default export 타입을 선언한다.
컴파일러는 import 결과 사용이 맞는지만 본다.
Vite, Webpack, Next.js가 실제 값을 만든다.
const value: string
번들링된 URL 문자열
이미지 최적화 방식은 프레임워크 설정을 따른다.
src 문자열 또는 컴포넌트
SVGR 사용 여부에 따라 타입이 달라진다.
URL과 React 컴포넌트를 혼동하지 않는다.
{ [className: string]: string }
`styles.container` 같은 클래스 맵
CSS Modules일 때만 맵 타입이 자연스럽다.
설정 객체 또는 좁힌 schema
데이터 파일을 직접 import
`any`로 열면 필드 오류를 놓친다.
`.d.ts`는 JS 변환 코드를 만들지 않는다.
실제 URL, class name, 데이터 로딩은 빌드 도구가 만든다.
확장자 전체에 적용되므로 프로젝트 규칙과 맞춘다.