[typescript]타입 추론

Hyoyoung Kim·2023년 8월 24일
0

TypeScript TIL

목록 보기
12/39

타입 추론

타입추론이란?

  • 타입스크립트는 타입이 정의되어 있지 않은 변수의 타입을 자동으로 추론합니다.
  • 일반적인 변수 선언의 경우 초기값을 기준으로 타입이 잘 추론됩니다.
  • 함수는 return문 뒤에 오는 반환문을 기준으로 타입을 추론한다.

any타입의 진화

  • 변수를 선언할때 초기값을 생략하면 암시적인 any 타입으로 추론됩니다.
  • 암시적으로 추론된 any 타입은 코드의 흐름에 따라 타입이 계속 변화합니다.
  • 이런것을 'any 타입의 진화'라고 한다.
let d;
//초기값을 생략하고 변수를 선언하면 처음에는 any 타입을 넣어준다.
d = 10;
//d에 값을 할당했을시 그 값의 타입값인 number 타입이 된다.
d.toFixed();
// d.toUpperCase(); (오류 발생)
//현재 d의 타입은 number이여서 number 메서드는 사용가능하지만
//string 메서드는 사용 안된다. 

d = "hello";
//d에 새로운 값을 할당했을시 그 값의 타입값이 된다. 
d.toUpperCase();
// d.toFixed(); // 오류 발생

const 상수의 추론

  • 상수는 초기화 때 설정한 값을 변경할 수 없기 때문에 특별히 가장 좁은 타입으로 추론됩니다.
let num1 =10; // number 타입으로 추론
const num = 10; // 10 Number Literal 타입으로 추론

let str1 = "hello"; //string 타입으로 추론
const str = "hello" //"hello" String Literal 타입으로 추론

타입 넓히기

  • const로 선언한 것이 아니라면 ts는 타입을 넓혀서 범용적으로 타입을 추론한다.

최적 공통 타입

  • 다양한 타입의 요소를 담은 배열을 변수의 초기값으로 설정하면, 최적의 공통 타입으로 추론
let arr = [1, "string"] // (string | number)[] 타입으로 추론

0개의 댓글