9_yoon
개발저장소
9_yoon
전체 방문자
오늘
어제
  • 분류 전체보기 (101)
    • 알고리즘 (52)
      • BJ (40)
      • 프로그래머스 (0)
      • SWEA (10)
      • JO (2)
    • 이론 공부 (7)
      • 네트워크 (2)
      • 알고리즘 (2)
      • Java (1)
      • Web (1)
      • 기타 (1)
    • 개발 공부 (35)
      • Project (1)
      • JavaScript (1)
      • Typescript (1)
      • Spring (12)
      • Java (2)
      • Next JS (7)
      • React (3)
      • Vue (1)
      • Web (5)
      • 기타 (2)
    • 기타 (7)
      • SSAFY (7)
      • 일상 (0)

인기 글

태그

  • 스프링
  • 백준
  • NextJS
  • 싸피7기
  • SWEA
  • 싸피
  • 김영한 스프링
  • 노마드코더
  • SSAFY
  • React

최근 글

티스토리

hELLO · Designed By 정상우.
9_yoon

개발저장소

[Typescript] 필수가 아닌 타입 설정하기
개발 공부/Typescript

[Typescript] 필수가 아닌 타입 설정하기

2022. 11. 16. 14:20
728x90
반응형

 

가끔 TS를 쓰면서 ?를 붙여서 필수 요소가 아닌 속성을 설정할 수 있다.

요로케

export type PrivateRouteProps = {
  auth: InitialStateType;
  outlet: JSX.Element;
  study?: boolean;
};

 

현재 study라는 인자를 옵션으로 받고 있는건데 그러면 이 옵션이 안올 때를 대비해서 미리 default값을 설정해줘야한다.

그러지 않으면 에러뜬다

defaultProps 세팅해주라고 합니다

그러면 해주면 된다.

 

PrivateRoute.defaultProps = {
  study: true
};

이런 식으로 기본값을 설정해주면 에러가 사라지는 모습을 볼 수 있다.

PrivateRoute는 컴포넌트 이름이다.
 
 
완성 코드

 

export type PrivateRouteProps = {
  auth: InitialStateType;
  outlet: JSX.Element;
  study?: boolean;
};

function PrivateRoute({ auth, outlet, study }: PrivateRouteProps) {
  const { check } = auth;
  const toast = useToast();

  // 로그인x
  if (!check) {
    toast({ title: "로그인 해주세요!", position: "top", duration: 1000 });
    return <Navigate to="/" />;
  }

  return outlet;
}

PrivateRoute.defaultProps = {
  study: true
};

export default PrivateRoute;

 

728x90
반응형
저작자표시 비영리 동일조건
    9_yoon
    9_yoon
    배울게 넘쳐나는 개발 세상에서 묵묵히 걸어가며 지식을 쌓는 신입 개발자

    티스토리툴바