리액트 프로젝트 세팅하기
- 프로젝트 생성
yarn create react-app my-app --template typescript
- 프로젝트 실행
yarn start
자식 컴포넌트로 props 내려주기
- 내려받는 props의 타입을 지정해줘야 함
- 타입을 지정해주지 않을 경우 타입스크립트의 IntrinsicAttributes 에러 발생 가능
props를 인자로 받는 부분에 인라인으로 하나씩 작성할 경우
- props가 한 개일 때
const TodoList = ({ todos}: { todos: Todo[]; }) => {
- props가 여러개일 때
const TodoList = ({ todos, isDone, setTodos }: { todos: Todo[]; isDone: boolean; setTodos: any }) => {
props에 대한 interface를 미리 지정할 경우
내려 받은 props 뒤에 타입으로 미리 지정한 interface 이름을 적으면 된다!
interface ButtonProps {
type?: "button" | "submit";
children: React.ReactNode;
styleType: StyleType;
disabled?: boolean;
onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
}
const Button = ({ type = "button", children, styleType, disabled, onClick }: ButtonProps) => {
- children의 타입은 React.ReactNode
- 만약 없을 수도 있는 props라면 ?: 로 타입 지정
- e의 타입은 <form onSubmit={e=>{}}>...</form> 와 같이 작성하고 e에 커서를 올리면 확인 가능
- void 타입은 함수의 리턴값이 없는 것을 의미함
export enum ~~
한 컴포넌트에서 정의한 상수값을 export해서 다른 컴포넌트에서 사용할 수 있다.
StyleType은 버튼 컴포넌트에서 버튼의 스타일을 확인하기 위해 만든 상수이다.
Button.tsx
export enum StyleType {
FORM_SUBMIT = "FORM_SUBMIT",
FORM_DELETE = "FORM_DELETE",
FORM_SWITCH = "FORM_SWITCH",
}
Main.jsx
import Button, { StyleType } from "./Button";
<Button styleType={StyleType.FORM_SUBMIT}>추가하기</Button>
사용할 컴포넌트와 StyleType을 둘 다 import해온 후 사용하면 된다.
참고한 블로그
https://kong-dev.tistory.com/164
[Typescript/타입스크립트] declare 모듈 타입 & 전역 타입 typeRoots 와 paths
0. 목차 1. 개요 2. 모듈 타입 3. 전역 타입 1. 개요 typescript를 쓰면서 가장 불편한 부분은 외부 라이브러리를 설치해서 사용 할 때이다. 사용하려는 라이브러리의 사용도가 높다면 사실 크게 문제
kong-dev.tistory.com
https://velog.io/@ovogmap/React-Typescript-2
React + Typescript 프롭스 타입 정의 하기
리액트에서 타입스크립트 사용하기 리액트에서 프롭스 타입 정의하기
velog.io
https://cpro95.tistory.com/656
타입스크립트 React props 전달하는 방법 및 IntrinsicAttributes 오류 해결
안녕하세요? 오늘은 타입스크립트로 리액트 코드를 짤 때 하위 컴포넌트(child componet)에 Props를 전달하는 제대로 된 방법을 알아보겠습니다. 그냥 자바스크립트로 작성하면 크게 문제가 안되지만
cpro95.tistory.com
https://react.vlpt.us/using-typescript/02-ts-react-basic.html
2. 리액트 컴포넌트 타입스크립트로 작성하기 · GitBook
2. 리액트 컴포넌트 타입스크립트로 작성하기 이번 섹션에서는 리액트 컴포넌트를 타입스크립트로 작성하는 방법을 알아보도록 하겠습니다. 프로젝트 생성 우선, 타입스크립트를 사용하는 리
react.vlpt.us