[React] TypeScript 기본 사용법
1. 함수형 컴포넌트 타입 추론
React.FC => 함수형 컴포넌트에 적용 가능하며, children을 ReactNode로 암묵적으로 수용한다.
undefined로 들어올수도 있어 안쓰려는 사람들도 많다.
출처: https://itchallenger.tistory.com/entry/React-children-with-typescript-리액트-children-컴포넌트-타이핑
React children with typescript. 리액트 children 컴포넌트 타이핑
원문 : https://isamatov.com/react-typescript-children-prop/ Using React children prop with TypeScript I'll cover each of the types used for children prop and discuss the trade-offs so you can pick the right one for your use case. isamatov.com 추가 : Pr
itchallenger.tistory.com
TypeScript를 처음 공부하면서 보통은 React.FC로 쓰는 걸 많이 봤는데
undefined로 들어오는 것보다 children을 암묵적으로 쓰는걸 더 중요하지 않게 봐서 그냥 안쓰는게 맞다고 생각했다.
undefined로 들어오면 오류잡는게 더 힘들 것 같다는 의견이다.
const Hello = () => {
return <div>hello, world</div>
}
2. 컴포넌트 children
// 타입 지정 해주기
interface HelloProps {
children: ReactNode
}
const Hello = ({children}: HelloProps) => {
return <div>{children}</div>
}
string 같은 원시 타입도 가능하지만 node element를 사용할 때도 있기 때문에 한번에 받는게 더 효율적이다.
3. 없어도 되는 타입
// type 옆에 '?'를 붙여준다
interface Props {
name?: string,
age: number
}
4. 함수 props 전달
interface GreetingsProps {
name: string;
onClick: (name: string) => void; // 아무것도 리턴하지 않는다는 함수를 의미합니다.
};
벨로퍼트에 사용법 정리가 아주 잘되어 있다! 두고두고 봐야지
2. 리액트 컴포넌트 타입스크립트로 작성하기 · GitBook
2. 리액트 컴포넌트 타입스크립트로 작성하기 이번 섹션에서는 리액트 컴포넌트를 타입스크립트로 작성하는 방법을 알아보도록 하겠습니다. 프로젝트 생성 우선, 타입스크립트를 사용하는 리
react.vlpt.us
5. styled-components props types 전달하기
// styled-component에 1개의 타입 지정
export const ImgDiv = styled.div<{background: string}>`
width: 300px;
height: 300px;
background: ${props => props.background}
`
// 여러 개의 타입 지정
interface HorizentalCardProps {
$isMobile?: boolean;
};
export const HorizentalCardLi = styled.li<HorizentalCardProps>`
display: flex;
width: 100%;
height: ${(props) => (props.$isMobile ? '200px' : '280px')};
`;
Styled-component typescript Props 받기
프로젝트를 진행하는데 JS로 개발을 할 때에는 styled-component에 props를 전달해주는데 에러가 없었는데 TypeScript로 개발을 함에 있어서 에러가 발생하였다. 에러는 Property 'height' does not exist on type 였
thsd-stjd.tistory.com
6. 상태 관리 함수 (setState) 전달하기
interface Props {
setIsValid: React.Dispatch<React.SetStateAction<boolean>>;
}
라이브 코딩 때 type을 어떻게 지정해줘야하는지 질문을 했었는데 codegen을 추천해주셨다.
아직 ts 어떻게 사용하는지도 공부하고 팀원들에게도 알려줘야하는데 그럴만한 시간은 없어서 사용하지 못했다.
다음 프로젝트 때는 사용해 보고 싶은 도구다.
codegen - 아직도 직접짜 ? 기준을 만들어 줄게
여러분 삽질 그만하시고 codegen 하세요.
velog.io
TS를 사용하면서...
즉각적으로 오류를 잘 나타내지만 딱히 안나도 되는 오류도 다 내는것 같아서
ts에 대해서 크게 장점은 알 수가 없다..귀찮기만 하고..
(수정) JS에서 처리할 수 없는 undefined를 잡아서 오류가 날 부분에 대한 캐치가 가능한 좋은 점을 찾았다.
하지만 타입을 일일이 지정해줘야 한다는 불편함이 더 커서 잘 사용하고 싶진 않다.