티스토리 뷰

타입스크립트 강의를 신청했고 들은 내용을 바탕으로 듣기만 하는 것이 아닌 직접 소스코드 짜보고 왜 그런지 이해하고자 하는 마음으로 정리를 해보고자 한다.

오류를 사전에 방지

티스토리라 그런지 코드가 안 이쁘게 나온다. 조만간 CSS 손좀 봐줘야 겠다. 타입을 미리 선언하여 vscode에 자동완성 기능을 넣어준다. 자바스크립트로 만들었을 경우에는 항상 console.log(response.data); 로 브라우저에서 확인을 한 다음에 다시 코드로 돌아와서 해당 키 값을 출력해주곤 했는데 그게 아니라 미리 소스코드에 타입을 정의해 놓는 것이다.

// 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 = {};

/**
 * @typedef {object} Address
 * @property {string} street
 * @property {string} city
 */
/**
 * @typedef {object} User
 * @property {string} name
 * @property {string} email
 * @property {Address} address
 */
/**
 *
 * @returns {Promise<User>}
 */
const fetchUser = () => {
  return axios.get(url);
};

fetchUser().then(function (response) {
  console.log(response.data.address.city);
});

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

startApp();

코드 가이드 및 자동완성에 대한 개발 생산성 향상

기존 자바스크립트로 구현을 했을 경우에는 result 경우 javascript api를 사용하려면 여러개가 나왔지만 typescript로 작성을 하였을 경우에는 number에 맞는 api만 자동으로 보여준다. 개발생산성이 더 향상되고 오류를 줄일 수 있다. 또한 타입에 대한 추론을 할 수 있어 어떤 값이 나올지 예측하기가 매우 용이하다.