React App에 Typescript 적용하기

1. 개요

React App에 typescript를 적용하기 위한 방법은 크게 두 가지가 있다. 첫 번째는 처음부터 typescript를 설정하는 방법이고 두 번째는 typescript가 적용되지 않은 React App에 몇 가지 모듈을 설치하고 설정 파일을 작성하는 방법이다.

이번 챕터에서는 위의 두 가지 방법에 대해 정리한다.


2. CRA으로 Typescript 설정하기

CRA(create-react-app)에 대한 내용은 React의 Create React app 챕터에 자세하게 설명되어 있으니 참고하면 된다.

CRA으로 typescript을 설정하는 방법은 한 줄의 명령어로 가능하다.(아래 명령어 참고)

$ npx create-react-app my-app --template typescript

위의 명령어를 통해 React App를 처음 생성하게 되면 자동으로 typescript가 설정된다. 아래는 생성 직후의 폴더 모습이다. tsconfig.json 파일이 생성된 것과 package.json에 typescript과 관련된 모듈들이 설치된 것을 확인할 수 있다.

apply_typescript_react_cra1 apply_typescript_react_cra2


3. 기존 React App에 Typescript 적용하기

React 프로젝트를 진행하는 도중에 typescript를 적용하고 싶으면 어떻게 해야할까? CRA방법으로 하기 위해선 처음부터 다시 빌드를 해야하기 때문에 지금까지 작성한 코드를 다시 작성해야 할 수 있다.

그렇다면 어떻게 해야할까? 방법은 간단하다. typescript과 관련한 모듈(라이브러리)을 직접 설치하고 tsconfig.json 파일을 만들어 설정해주면 된다.


3-1. Typescript 의존성 추가

아래의 명령어를 통해 타입 스크립트를 적용하기 위해 필요한 라이브러리들을 package.json의 의존성에 추가한다.

  • npm

    $ npm i typescript @types/node @types/react @types/react-dom @types/jest --save-dev

  • yarn

    $ yarn add typescript @types/node @types/react @types/react-dom @types/jest --dev

위의 명령어를 수행하면 package.jsondevDependencies에 아래와 같은 의존성 라이브러리들이 추가된다.

apply_typescript_react_1

3-2. Typescript 설정

의존성 라이브러리들을 추가하였으면 tsconfig.json 파일을 만들어 필요한 typescript 설정을 해야한다. 직접 파일을 만들어도 되지만 아래의 명령어를 통해 만들 수 있다.

$ tsc --init

해당 과정에서 아래와 같은 오류가 등장할 수 있다.

apply_typescript_react_2

이는 tsc 명령어를 찾을 수 없다는 뜻인데 typescript를 글로벌로 설치하면 해결 가능하다.(아래 명령어 참고)

sudo npm i typescript -g

$ tsc --init 명령어를 통해 tsconfig.json이 만들어지면 처음 보는 모습은 아래와 같을 것이다.

굉장히 많은 설정이 필요한 tsconfig.json 파일이다. 원하는 옵션을 추가하여 tsconfig.json을 설정하면 된다. tsconfig.json의 옵션에 대한 자세한 설명은 Typescript 설정 파일에서 다룬다.


3-3. 스크립트 수정

마지막 단계이다. .js 파일을 .ts또는 .tsx파일로 수정한다.

아래의 .js 파일을 .tsx 파일로 수정해보자.

수정하게 되면 3가지의 오류가 나타난다. 크게 나누면 2가지의 오류이다. 하나는 styled-components과 연관된 모듈에 대한 선언 파일을 찾지 못해서 발생한 오류이고 다른 하나는 컴포넌트의 props가 암묵적으로 any 타입을 가지기 때문에 발생한 오류이다. 하나씩 해결해보자.


3-4. 스크립트 오류 해결1 - declaration 파일 설치

첫 번째 오류에 대한 해결 방법은 빨간줄에 마우스를 올리면 쉽게 찾을 수 있다.

apply_typescript_react_3

세 번째 줄에 보면 Try "npm i --save-dev @types/styled-components"가 적혀있고 적힌대로 아래의 명령어를 실행하면 된다.

$ npm i --save-dev @types/styled-components

styled-components와 관련된 declaration 파일(모듈, 라이브러리)이 설치되고 package.json의 의존성에 추가된다. 해결완료


3-5. 스크립트 오류 해결2 - props의 type 설정

두 번째 오류에 대한 해결 방법은 부모 컴포넌트에서 받은 props의 타입을 정해주기만 하면 된다. 코드를 아래와 같이 수정한다.

interface와 같은 typescript과 관련된 내용은 앞으로 꾸준히 정리한다. 자세한 설명은 다음에 하고 지금은 오류해결에만 집중한다.


4. Conclusion

티처캔에 타입스크립트를 적용하려고 한다. 그 중 첫번째 과정이 바로 이번 챕터에서 다룬 내용이지 않을까 싶다. 그리고 앞으로 티처캔에 타입스크립트를 적용하면서 마주치는 어려움과 배운 내용을 정리하면서 타입스크립트와 친해지도록 하자. 타입스크립트는 내편이다


참고

기존 React App에 Typescript 적용하기 [에러 해결] styled-components Could not find declaration file


📅 2022-08-21

Last updated