TS 타입 추론 (Type Inference)

joon·2022년 4월 3일
0

Typescript

목록 보기
4/9

📃타입 추론

자바스크립트에서는 아래 예제에서 처럼 a변수에 string 값인 "hello"로 재할당 하려하면 문제없이 재할당 가능합니다.

let a = 10;
a = "hello"

하지만 타입스크립트에서는 Type 'string' is not assignable to type 'number'. 에러가 발생합니다. 컴파일을 시도해도 에러 메시지가 발생합니다.

에러의 의미는 재할당하려는 변수값이 숫자가 아니기 때문에 a 변수에 할당될수 없다 라는 내용입니다.

이러한 현상이 나타나는 이유는 타입스크립트의 타입 추론때문입니다.
타입스크립트에서는 타입 표기가 없는경우 타입 정보를 제공하기위해서 타입을 추론합니다.

즉 타입스크립트는 타입 표기가 없는 경우 코드를 읽고 분석하여 타입을 유추해낼수 있습니다.


✔ 예제

student라는 오브젝트 객체가 있습니다. 타입스크립트는 먼저 프로퍼티의 할당값을 검사하고 어떤 타입이 프로퍼티의 할당값으로 주어졌는지 스스로 추론하였습니다.

아래는 타입이 다르기때문에 에러가 발생합니다.

let student = {
  name: "joon",
  codingLevel: 10,
  code: function () {
    console.log("코딩 공부중입니다.");
  },
};

student.name = 10;
student.codingLevel = "오"

두번째 예제입니다.
마우스를 함수키워드 위로 가져가면 타입스크립트가 함수의 return 값으로 number를 할당하였습니다.
이것은 num 타입을 명시하지 않았지만 타입스크립트는 - 연산자를 통해서 결과물 즉 return 값이 숫자일거라는 추론을합니다.

function calcuIQ(num: any): number


function calcuIQ(num) {
  return 100 - num;
}

0개의 댓글