인프런 커뮤니티 질문&답변

한상윤님의 프로필 이미지
한상윤

작성한 질문수

한 입 크기로 잘라먹는 타입스크립트(TypeScript)

제네릭 인터페이스 & 제네릭 타입 별칭

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

해결된 질문

작성

·

288

·

수정됨

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

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

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

우선 넵 그렇습니다.

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

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

한상윤님의 프로필 이미지
한상윤
질문자

앗 감사합니다:)

한상윤님의 프로필 이미지
한상윤

작성한 질문수

질문하기