Typescript-exercises 04

hotbreakb·2022년 6월 13일
0

typescript-exercises

목록 보기
4/12

문제

type을 확인하는 isUserisAdmin이 있다.

버그 없애줘!

코드

🔻 강제 캐스팅. 돌아가지만 마음이 불편하다. as를 쓰고 싶지 않다.

export function logPerson(person: Person) {
    let additionalInformation: string = '';
    if (isAdmin(person)) {
        const newPerson = person as Admin;
        additionalInformation = newPerson.role;
    }
    if (isUser(person)) {
        const newPerson = person as User;
        additionalInformation = newPerson.occupation;
    }
    console.log(` - ${person.name}, ${person.age}, ${additionalInformation}`);
}

🔻 공식적인 답안

export function isAdmin(person: Person):person is Admin {
    return person.type === 'admin';
}

export function isUser(person: Person):person is User {
    return person.type === 'user';
}

is

parameterName is Type

함수의 파라미터가 Type이라면, Type으로 리턴한다.

function isFish(pet: Fish | Bird): pet is Fish {
  return (pet as Fish).swim !== undefined;
}

참고 자료

profile
글쟁이 프론트 개발자, 헬렌입니다.

0개의 댓글