타입스크립트 narrowing 방법 몇가지 더.

column clash·2021년 8월 22일
0
function 내로윙함수1(a: string | undefined) {
  if (a && typeof a === "string") {
    // 1. && 연산자로 null & undefined 타입체크하기
  }
}

type Fish = { swim: string };
type Bird = { fly: string };

function 내로윙함수2(animal: Fish | Bird) {
  if ("swim" in animal) {
    // in 키워드로 object narrowing 가능. 속성명 in 오브젝트자료
    animal.swim;
  }
}

// 오브젝트  instanceof 부모class
let 날짜 = new Date();
if (날짜 instanceof Date) {
}

type Car1 = {
  wheel: "4개";
  color: string;
};

type Bike1 = {
  wheel: "2개";
  color: string;
};

function 내로윙함수3(x: Car1 | Bike1) {
  //비슷한 object 일 경우, literal type을 강제로 만들어두면  나중에 도움이 됨.
  // 고정된 값 하나.
  //논리적으로 이 타입인지 특정지을 수 있다면, narrowing 인정해줌
  if (x.wheel === "4개") {
    console.log("x는 Car타입이에요.");
  }
}
profile
풀스택 개발 중...

0개의 댓글