JS 프로젝트를 TS 프로젝트로 마이그레이션 하기 or TS 템플릿으로 생성하기
-> 마이그레이션 시 보통 파일을 하나씩 변경한다.
1. 직접 react-create-app 마이그레이션 하기
1) 리액트 앱 생성 및 타입 선언 패키지 install
npx create-react-app .
npm i @types/node @types/react @types/react-dom @types/jest`
2) tsconfig.json 설정하기
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS",
"strict": true,
"allowJs": true,
"esModuleInterop": true, // 외부 패키지 등에서나 export default가 없어도 기본옵션으로 추가하기
"jsx": "react-jsx" // ts는 기본적으로 jsx해석못하기 때문에 추가
},
"include": ["src"]
}
3) 모든 js파일을 jsx 컴포넌트로 변경
-> 타입스크립트의 컴파일러(tsc)가 파일 확장자와 구성 옵션을 통해 코드의 의도를 명확히 구분하기 때문
-> .js와 .jsx는 순수 JavaScript 코드로 간주되며, 기본적으로 타입 검사를 최소화하거나 생략한다.
따라서, .js 파일에서 JSX를 사용하면 타입스크립트는 이를 별도의 설정 없이는 처리하려고 시도하지 않는다.
4) 개별 파일들 tsx로 하나씩 변경 후 에러를 옵션 등으로 해결하기
//index.tsx 에러
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement // 단언 추가
);
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
2. 한 번에 ts 프로젝트 생성하는 방법(ts 템플릿)
npx create-react-app my-app --template typescript
// 또는 현재 폴더에서 생성하기
npx create-react-app . --template typescript
<참고>
728x90
반응형
'JavaScript > TypeScript' 카테고리의 다른 글
[TypeScript] tsconfig.json 설정 옵션 알아보기 (0) | 2024.10.22 |
---|---|
[TypeScript] 타입 스크립트의 필요성과 동작 원리 (4) | 2024.10.22 |
[TypeScript] 타입스크립트란 무엇인가? 타입스크립트 동작 원리에 대하여 (0) | 2024.03.08 |
[TypeScript] props으로 받은 함수의 타입 지정하기 (0) | 2022.12.01 |
[TypeScript] React.KeyboardEventHandler<HTMLInputElement> 에서 event.target.value 에러 (0) | 2022.12.01 |