Programming/React.js

[Node.js] React와 Typescript 연동하기 / TSX

MOONCO 2021. 3. 1. 10:48

React란?

 

[Node.js] React.js 란? / React 사용법 ( create-react-app )

React란? 웹/앱의 사용자 조작환경(UI)를 만들어주는 Node.js 패키지 (페북이 만듬) React 탄생 배경 요즘 웹사이트는, 규모가 커질때로 커지고, 사용자가 직접 컨트롤 할 수 있는 부분이 많아지고 있다

defineall.tistory.com

Typescript란?

 

[Typescript] Typescript 란? / Typescript 사용법

Typescript란? javascript ES5, ES6를 여러가지 규칙을 적용할 수 있도록 확장한 프로그래밍 언어 Typescript의 필요성 규칙을 사용해 버그를 최소화하고, 결과를 더 쉽게 예측 할 수 있다 ES6로 작성된 코드

defineall.tistory.com

 


 

create-react-app 으로 Typescript이용한 React앱 만들기

// 컴퓨터에 패키지 설치되어있을때

create-react-app <프로젝트명> --template typescript


// 패키지 설치안하고, 1회성 프로젝트 생성할때

npx create-react-app <프로젝트명> --template typescript

 

react와 typescript를 같이 사용하는 법

기존의 타입스크립트는 .ts 파일을 사용하지만,

react와 연동해서 사용할 땐 .tsx 파일을 사용한다.

 

// App.tsx

import {BrowserRouter as Router, Route, Switch} from "react-router-dom"

// Home.tsx, Login.tsx 파일에서 컴포넌트 가져오기!
import Home from "./screens/Home";
import Login from "./screens/Login";

function App() {
  const isLoggedIn = false;
  return (
    <div className="App">
      <Router>
        <Switch>
          <Route path="/" exact>
            {isLoggedIn ? <Home/> : <Login/>}
          </Route>
        </Switch>
      </Router>
    </div>
  );
}

export default App;

 

타입 지정하기

 

클래스는 물리적으로 동작하는 메서드와 속성을 가지므로, js코드로 변환해도 컴파일된 형태 그대로 남아있지만,

import type 구문으로 불러온 타입은, js코드로 컴파일 후 사라진다.

import React from 'react';
import type {FC} from 'react';
// 컴파일 후 사라짐

import IPerson from './types.d.ts'
// 컴파일 후에도 남아있음
import {Text} from 'react-native';

export type PersonProps = {
  person: IPerson;
};

// 함수형 컴포넌트 리턴값의 타입과, 컴포넌트 속성값의 타입을 지정
const Person: FC<PersonProps> = ({person}) => {
  return <Text>{JSON.stringify(person, null, 2)}</Text>;
};

export default Person;
반응형