리액트에 타입스크립트를 적용해보자.
$ npx create-react-app ts-react-tutorial --typescript
$ npm install typescript @types/node @types/react @types/react-dom @types/jest @types/react-router-dom
위의 명령어는 리액트 파일 생성시 타입스크립트를 적용하는 거고,
아래 명령어는 이미 생성된 리액트 파일에 타입스크립트를 적용하는 거다.
타입스크립트 확장자는 js -> tx / jsx -> tsx 로 설정한다.
리액트는 jsx를 반환하는 컴포넌트일 때 tsx로, 아니면 ts로 변환한다.
이후 적용방식은 아래 글들을 참고했다.
대부분 interface를 활용해 객체타입을 캡슐화하는데 초점이 맞춰져 있다.
타입스크립트는 확실히 js 나 리액트에서 데이터의 안전성에 많이 활용되는 듯 싶다.
https://react.vlpt.us/using-typescript/02-ts-react-basic.html
2. 리액트 컴포넌트 타입스크립트로 작성하기 · GitBook
2. 리액트 컴포넌트 타입스크립트로 작성하기 이번 섹션에서는 리액트 컴포넌트를 타입스크립트로 작성하는 방법을 알아보도록 하겠습니다. 프로젝트 생성 우선, 타입스크립트를 사용하는 리
react.vlpt.us
https://www.youtube.com/watch?v=g-kauNOTVRY&list=PLZKTXPmaJk8J_fHAzPLH8CJ_HO_M33e7-&index=17
https://kyounghwan01.github.io/blog/TS/React/convert-js-to-ts/
How to Migrate a React App to TypeScript
How to Migrate a React App to TypeScript
kyounghwan01.github.io
이후 컨포넌트 생성은 아래와 같다.
const App: React.FC = ()=>{
return (
<>
<Header/>
<Home/>
<Footer/>
</>
);
}
이때 한가지 의문점이 생겼는데 컨포넌트를 선언문으로 생성한다는 점, 그리고 그 안에 들어가는 다른 컨포넌트를 아래 줄에 적어도 호이스팅 된다는 점이었다. (띠용!)
물론 ts를 적용하더라도 얼마든지 표현식으로 할 수 있지만 TDZ(Temporal Dead Zone)를 유의해야 한다.
참고
[ React ] 함수 컴포넌트, 선언문 vs 표현식은 취향 차이일까?
React의 컴포넌트 함수를 선언하는 두 가지 방법.
velog.io
'Frontend > typescript' 카테고리의 다른 글
Typescript 배우기 8 (유틸리티 타입) (0) | 2022.06.05 |
---|---|
Typescript 배우기 7(제네릭) (0) | 2022.06.05 |
Typescript 배우기 6 (클래스) (0) | 2022.06.05 |
Typescript 배우기 5 (리터럴, 유니온/교차 타입) (0) | 2022.06.05 |
Typescript 배우기 4 ( 함수) (0) | 2022.05.19 |