<aside> 💡
Q. 보니깐 tsx 파일이던데, 이건 react 및 js랑 뭐가 달라?
</aside>
진짜 잘 봤다! 👀
맞아, .tsx 파일이면 React + TypeScript 조합으로 만든 거야.
아래에 간단하면서도 핵심적인 차이점 알려줄게.
.js vs .jsx vs .ts vs .tsx 정리| 확장자 | 의미 | 설명 |
|---|---|---|
.js |
JavaScript | 순수 자바스크립트 |
.jsx |
JavaScript + JSX | React 컴포넌트 작성 가능 (JSX 문법 포함) |
.ts |
TypeScript | 정적 타입이 추가된 자바스크립트 (React 안씀) |
.tsx |
TypeScript + JSX | React 컴포넌트를 TypeScript 기반으로 작성할 수 있는 확장자 |
.tsx는 뭐가 다르냐?// JSX (.jsx or .js)
const Hello = ({ name }) => {
return <div>Hello {name}</div>;
}
// TSX (.tsx)
type Props = {
name: string;
};
const Hello = ({ name }: Props) => {
return <div>Hello {name}</div>;
};
→ name이 string이라는 걸 명시해줌.
→ 타입 오류도 IDE에서 코딩 도중에 미리 감지 가능!
.tsx를 쓰면 좋은 이유| 장점 | 설명 |
|---|---|
| ✅ 실수 방지 | props, 상태 값 등에 타입 지정 → 잘못된 데이터 방지 |
| ✅ 유지보수 용이 | 협업 시 타입 기반으로 코드 이해 쉬움 |
| ✅ 자동완성 향상 | IDE에서 prop 타입, 객체 구조 자동 추론 가능 |
| ✅ 문서화 효과 | 함수나 컴포넌트에 타입이 붙어서 설명 안 해도 이해됨 |