Narrowing 심화

|

코딩애플강의를 보고 정리했습니다.

Narrowing은?

if문등으로 타입을 하나로 정해주는것을 뜻한다.

null & undefined 체크하는 법

&&기호 사용

// 예시 1
if (변수 && typeof strs === 'string') {
...
}

// 예시 2
function printAll(strs: string | undefined) {
  if (strs && typeof strs === "string") {
    console.log(s);
  }
}

in 연산자로 object 자료 narrowing

type Fish = { swim: string };
type Bird = { fly: string };
function 함수(animal: Fish | Bird) {
  if ('swim' in animal) {
    return animal.swim;
  }
  return animal.fly;
}

literal type narrowing

literal 타입이란 특정 글자나 숫자만 가질 수 있게 제한을 두는 타입 설정을 말한다.

type Car = {
  wheel: '4개',
  color: string,
};
type Bike = {
  wheel: '2개',
  color: string,
};

function 함수(x: Car | Bike) {
  if (x.wheel === '4개') {
    console.log('the car is ' + x.color);
  } else {
    console.log('the bike is ' + x.color);
  }
}