타입 가드(Type Guard)
5860 단어 typescripttypescript
타입 가드(Type Guard)
특정 타입으로 타입의 범위를 좁혀나가는(필터링 하는) 과정
설명하기 위한 사전 예제
interface Developer{
name: string;
skill: string;
}
interface Person {
name: string;
age: number;
}
function introduce(): Developer | Person{
return {name: 'Tony', age: 33, skill:"Iron Making"}
}
let tony = introduce();
console.log(tony.skill); // 유니온 특징에 의해 접근 불가
// 타입 단언을 사용하여 접근
if((tony as Developer).skill){
let skill = (tony as Developer).skill;
console.log(skill);
} else if(tony as Person).age){
let age = (tony as Developer).age;
console.log(age);
}
- 가독성이 많이 떨어집니다.
타입 가드를 적용하면
is
키워드 사용
function isDeveloper(target: Developer | Person): target is Developer {
return (target as Developer).skill !== undefined; // target이 skill 이라는 것이 있을 경우, Developer 취급 한다.
}
if(isDeveloper(tony)){
tony.skill
} else{
tony.age
}
참고
Author And Source
이 문제에 관하여(타입 가드(Type Guard)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoho_0815/타입-가드Type-Guard저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)