인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

ACACIA님의 프로필 이미지
ACACIA

작성한 질문수

타입스크립트 입문 - 기초부터 실전까지

자바스크립트에 타입이 있을 때의 첫 번째 장점

[참고] 섹션1-3 [자바스크립트에 타입이 있을 때의 첫 번째 장점] - why-ts undefined

해결된 질문

작성

·

382

·

수정됨

2

섹션1-3 강의명 [자바스크립트에 타입이 있을 때의 첫 번째 장점] 중 why-ts의 app.js에서 axios.get(url)의 response 를 User type으로 정의하였습니다. Promise<User>

이때, response가 아닌 response.data가 User type이므로 자동완성을 따라가면 undefined 문제가 발생합니다.

이미 많은 질문이 나왔고 답변으로도 말씀하셨듯 필요성을 인지하기엔 충분하므로 수강하시는 분들은 단순 참고 바랍니다.🙏

답변 2

0

안녕하세요, 네 다른 분들을 위해서 노트 남겨주셔서 감사합니다 :)

0

ACACIA님의 프로필 이미지
ACACIA
질문자

 


기존 강의자료

// user data

var user={};
...

/**
 * @typedef {object} User
 * @property {string} name 
 * @property {string} email
 * @property {Address} address
 */

/**
 * 
 * @returns {Promise<User>}
 */
function fetchUser() {
  return axios.get(url);
}

 


참고로 아래와 같이 추가 정의하더라도 상단에서 user을 정의하고 있었기 때문에 정상적인 추론이 되지 않습니다.

// user data
var user={};
...

/**
 * @typedef {object} UserData
 * @property {User} data 
 */

/**
 * 
 * @returns {Promise<UserData>}
 */
function fetchUser() {
  return axios.get(url);
}

 

```

---

아래와 같이 선언시 타입을 제공하여 해소 가능합니다.만. 그냥 ts 씁시다. 화이팅~

// var user = {} 삭제

function startApp() {
  fetchUser()
    .then(function (response) {
      var user = response.data;

 

 

ACACIA님의 프로필 이미지
ACACIA

작성한 질문수

질문하기