• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

제네릭 인터페이스 & 제네릭 타입 별칭 수업 질문있습니다.

23.12.06 18:56 작성 23.12.06 18:56 수정 조회수 180

0

학생만 사용할 수 있는 함수 goToSchool을 제작할 때 불필요한 타입 좁히기를 피하기 위해서 제네릭을 인터페이스에 활용한다고 하셨는데 처음부터 type을 Student라고 한다면 불필요한 타입 좁히기를 사용할 일이 없지 않나라는 궁금증이 생겨서 질문드립니다. ㅠㅠ

 <아래와 같은 코드>

// 1번 학생을 위한 함수
function goToSchool(user: User) {
  if(user.profile.type !== "Student") {
    user.profile // 개발자
    console.log("잘못오셨습니다")

    return
  }

  user.profile // 학생
}

// 2번 학생을 위한 함수
function goToSchool(user: User) {
  if(user.profile.type === "Student") {
    user.profile // 학생
    console.log("잘못오셨습니다")
  }
}

 

답변 1

답변을 작성해보세요.

1

안녕하세요 이정환입니다!

우선 넵 그렇습니다.

딱 이 예제만으로 살펴보자면 매개변수의 Type을 Student로 애초에 정의해두면 타입 좁히기를 사용할 필요는 없습니다.

다만 강의 중에는 제네릭과 타입 좁히기를 조금 현실에 만나볼 수 있는 예제와 함께 설명해드리기 위해 요렇게 의도적으로 사용한 점을 참고해주시면 감사하겠습니다 😃

한상윤님의 프로필

한상윤

질문자

2023.12.07

앗 감사합니다:)