본문 바로가기
First step/언어의 기초

TS 제너릭 관련

by Joshua21 2022. 1. 6.

TS에서 반환값의 타입을 정의할떄 

동기 코드로 작성하면 반환값이 무엇인지 TS에서 추론하게 된다

예를 들어 

function fetchItems() {
  let items = ['a','b','c']
  return items;
}
let result = fetchItems();
console.log(result);

처럼 작성하면TS는 result에 담긴 fetchItems() 의 반환값이 string[] 이라는 것을 추론하여 알게 된다.

 

그와 다르게 비동기적으로 코드를 짜세괴면 반환값이 무었인지추론하지 못한다

예를 들어

function fetchItems(): promise<string[]> {
  let items: string[] = ['a','b','c'];
  return new Promise(function (resolve) {
    resolce(items);
  });
}
fetchItems();

처럼 코드를 비동기적으로 작성하면 promise로 반환되는 결과값의 타입에 대해 TS에서 추론하지 못한다.

promise자체가 타입을 제너릭으로 받게 되어있다. <T>