[캡틴판교 타입스크립트] 11. 타입 추론(Type Interface)

Derhon·2023년 1월 3일
0
post-thumbnail

타입 추론(Type Interface)

타입스크립트가 코드를 해석해 나가는 동작을 의미함

타입 추론(Type Interface)의 기본

  • 타입을 따로 지정하지 않아도 타입이 지정되는 경우가 있다.
    let x = 3;
    image
    이런 경우, 타입을 별도로 지정하지 않아도 number로 타입이 추론되는 것을 확인할 수 있다.

가장 적절한 타입(Best Common Type)

  • 타입은 보통 몇개의 표현식을 바탕으로 추론된다.
  • 이 중 가장 근접한 타입을 Best Common Type이라고 한다.
    • image
    • 위의 사진과 같이 배열 내부의 요소를 파악하여 number|null로 추론된 것을 알 수 있다.

문맥상의 타이핑(Contextual Typing)

  • Best Common Type 이외에 문맥상으로 타입이 결정되는 경우도 있다.
  • 이를 Contextual Typing(문맥상의 타이핑)이라고 한다.
    window.onmousedown = function (mouseEvent) {
      console.log(mouseEvent.button); //<- OK
      console.log(mouseEvent.kangaroo); //<- Error!
    };
    • 위 코드의 경우, mouseEventwindow.onmousedown때문에 마우스 이벤트와 연관되어 있다고 추론된다. 때문에 button속성은 확인할 수 있지만, kangaroo속성은 시스템에서 없다고 결론을 내린다.
    window.onscroll = function (uiEvent) {
      console.log(uiEvent.button); //<- Error!
    };
    • 위의 코드블럭도 동일하다.
    const handler = function (uiEvent) {
      console.log(uiEvent.button); //<- OK
    };
    • 위의 코드블럭은 타입을 추론할 수 없어 any 타입이 부여된다.
      • 에러가 발생하지 않는다.
      • --noImplicitAny 옵션을 사용하면 에러가 발생한다.

타입체킹

  • 타입스크립트에서 타입체킹은 value형태에 기반하여 이루어져야한다.
  • 이를 Duck Typing 또는 Structural Subtyping이라고 한다.

예제코드

11-예제코드

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/

0개의 댓글