해결된 질문
작성
·
144
1
// 1
function isDog(animal: Animal) animal is Dog {
return (animal as Dog).isBark !== undefined;
}
// 2
function isDog(animal: Animal) animal is Dog {
return "isBark" in animal;
}
수업에서는 1번을 알려주셨는데 코드를 2번과 같이 작성하지 않은 이유가 있을까요?
답변 1
1
안녕하세요 이정환입니다.
제안해주신 2번이 현재 상황에서는 조금 더 간결하고 깔끔하겠네요
다만 2번 버전의 경우 isBark 프로퍼티의 이름이 변경되거나 Animal에서 삭제되었을 경우,
코드상의 오류가 있다고 검출되지 않기 때문에 실수가 유발될 가능성이 있습니다.