TypeScript

TIL | Type Inference

Type Inference(타입 추론)

Inference

  • TS에서 변수 명에 특정 값을 할당할 때, 타입을 따로 명시하지 않았을 경우 알아서 타입이 자동으로 결정되는 것을 말한다.
let text = "hello"; // let text: string
//
text = 1; // Type 'number' is not assignable to type 'string'
  • 위처럼 text 변수 명에 hello를 할당하였더니 변수 타입이 string으로 추론되어 자동으로 결정되었다.
  • 이후 타입이 number값인 1을 재할당하니 에러가 발생한다. (기존의 text 타입이 string으로 결정되었기 때문이다.)

 

Intersection in default

const print = (message = "안녕하세요") => {
  // (parameter) message: string
  console.log(message);
};
print(); // 안녕하세요
print("반갑습니다."); // 반갑습니다.
print(1); // Argument of type '1' is not assignable to parameter of type 'string | undefined'
//
const add = (x = 1, y = 2) => {
  return x + y;
};
const result = add(); // const result: number
console.log(result); //
  • 특정 함수의 인자의 타입값을 따로 지정하지 않고, default 값에 따라 타입이 추론되어 지정될 수 있다.
  • add 함수의 경우, 인자들이 숫자값이므로 number로 타입이 추론되어 결정되었다. 또한 result값도 add의 return값이 number 타입을 갖고 있으므로 위같은 결과를 확인할 수 있었다.

 

Reference

'TypeScript' 카테고리의 다른 글

TIL | Generics  (0) 2021.10.23
TIL | Interface  (0) 2021.10.23
TIL | Union, Intersection  (0) 2021.10.23
TIL | Alias  (0) 2021.10.23
TIL | Array, readonly, Tuple  (0) 2021.10.23