해결된 질문
작성
·
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
안녕하세요 이정환입니다!
우선 넵 그렇습니다.
딱 이 예제만으로 살펴보자면 매개변수의 Type을 Student로 애초에 정의해두면 타입 좁히기를 사용할 필요는 없습니다.
다만 강의 중에는 제네릭과 타입 좁히기를 조금 현실에 만나볼 수 있는 예제와 함께 설명해드리기 위해 요렇게 의도적으로 사용한 점을 참고해주시면 감사하겠습니다 😃
앗 감사합니다:)