inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

섹션 1-3 추론 질문드립니다

354

sy

작성한 질문수 7

1

  1. 2.

 

  1. 영상에서 설치하라는 것 다 똑같이 따라했는데 이부분 영상에서처럼 상자모양?별모양?으로 나오지 않습니다. 어떻게 해야할까요?

 

  1. 두번째 사진에 city도 나오지 않습니다 ㅠ

     

  2. 스크립트 전문입니다


// api url
var url = "https://jsonplaceholder.typicode.com/users/1";

// dom
var username = document.querySelector("#username");
var email = document.querySelector("#email");
var address = document.querySelector("#address");

// user data
var user = {};

function fetchUser() {
  return axios.get(url);
}

/**
 * @typedef {object} Address
 * @property {string} street
 * @property {string} city
 */

/**
 * @typedef {object} User
 * @property {string} name
 * @property {string} email
 * @property {Address} address
 */
/**
 * @returns {Promise<User>}
 */

fetchUser().then(function (response) {
  response.address;
});

function startApp() {
  // axios
  //   .get(url)
  fetchUser()
    .then(function (response) {
      // console.log(response);
      user = response.data;
      // TODO: 이름, 이메일, 주소 표시하기
      console.log(user);
      username.innerText = user[0].name;
      email.innerHTML = user[0].email;
      // 그냥 문자열이 아니라 객체였음(키:밸류 값)
      address.innerHTML = user[0].address.street;
    })
    .catch(function (error) {
      console.log(error);
    });
}

startApp();
// /**
//  *@param {number} a
//  *@param {number} b
//  *
//  */

// function sum(a, b){
//   return a+b;
// }
// SubmitEvent(10,20)

javascript typescript es6

답변 2

0

캡틴판교

안녕하세요, 요건 타입의 장점을 보기 위해서 예시로 작성한 코드라 실행까지 보장하지는 않을거예요. 설명과 내용 정도 듣고 취지만 이해하시면 될 것 같습니다 :)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 제가 도움을 드릴 수 있는 내용이라면 답변드리겠습니다.

코드를 보니 username, email, address는 각각 문서 요소를 가리키는 변수들입니다. 따라서 해당 요소들에 접근하여 값을 표시할 수 있습니다. 하지만 주어진 코드에서는 username, email, addressresponse.data에 바로 접근하고 있어 잘못된 접근입니다.

올바른 코드는 아래와 같이 수정될 수 있을 것 같습니다.

fetchUser()
  .then(function (response) {
    // console.log(response);
    user = response.data;
    // TODO: 이름, 이메일, 주소 표시하기
    console.log(user);
    username.innerText = user.name;
    email.innerHTML = user.email;
    address.innerHTML = user.address.street;
  })
  .catch(function (error) {
    // 에러 처리
  });

위의 코드에서 response.data는 서버에서 받아온 전체 데이터 객체를 의미합니다. 따라서 객체 내부의 속성에 접근하기 위해서는 response.data 뒤에 .속성이름을 추가하여 접근해야 합니다. 이를 참고하여 username.innerText, email.innerHTML, address.innerHTML에 올바른 값을 대입하도록 수정하시면 될 것 같습니다.

도움이 되셨나요? 추가로 궁금한 점이 있으면 언제든지 물어보세요. 좋은 결과가 있기를 바라요~요.

TSLint

0

66

1

vscode eslint server 오류

0

75

1

안녕하세요. 기본타입- 튜플, 객체, 진위값 부분의 영상의 화면이 나오질 않습니다.

0

77

1

live server 설치 오류

1

371

2

강의 교안 pdf 는 따로 제공하지않나요?

0

284

2

npm i 설치 이유 문의

1

404

3

index.ts Delete &#x60;␍&#x60;eslintprettier/prettier 오류(빨간줄) 해결

2

289

3

vue 에서 jquery 사용 문제

1

692

2

TSLint 확장 프로그램은 현재 지원하지 않는다고 합니다.

1

499

2

강의 내용처럼 노란 밑줄이 작동하지 않아서 유사 질문들을 실행해보았는데요

1

542

1

section 3-1 JSdoc 타입이 추론되지 않아서 다음과 같이 수정했는데 이거 맞나요?

1

452

2

함수에 리턴 안됐다고 노란밑줄이 쳐져야하는데 없습니다

2

455

1

파일이 다른데 식별자가 중복되었다고 뜹니다.

1

443

2

빨간줄 에러 질문드립니다

1

489

2

마우스 갖다대면 리턴값 설명 나오는 거 질문드려요

1

356

2

js에서 @ts-check 적어도 체크하지 못하는 문제입니다

2

393

2

index.html에서 타입스크립트 콘솔 찍는 법 질문드립니다

1

566

2

왜 api쪽에는 왜 에러가 안나는지 궁금합니다.

1

323

2

const item1을 선언했을 때 타입을 선언해줘도 괜찮을까요?

1

391

1

전화번호부 타입선언

1

266

2

타입을 전역으로 분리

1

593

2

객체 선언 시 구분자는 쉼표, 세미콜론 모두 사용가능한건가요?

1

460

1

Git 관련 질문이 있습니다

1

670

2

js import export 관련 질문입니다!

1

357

2