주니어 Frontend 개발자들의 고민
10년차 직장인
// JavaScript const message = 'hi'; function sum(a, b) { return a + b; }
// JavaScript const message = 'hi'; function sum(a, b) { return a + b; }
// TypeScript const message: string = 'hi'; function sum(a: number, b: number): number { return a + b; }
// TypeScript const message: string = 'hi'; function sum(a: number, b: number): number { return a + b; }
var ten = '10'; ten.toFixed(2); // Uncaught TypeError: b.toFixed is not a function const sum = (a, b) => a + b; sum(10, '20'); // 30?
var ten = '10'; ten.toFixed(2); // Uncaught TypeError: b.toFixed is not a function const sum = (a, b) => a + b; sum(10, '20'); // 30?
INFO 사용자보다 개발자가 에러를 먼저 발견!
var ten = '10'; ten.toFixed(2); // Uncaught TypeError: b.toFixed is not a function function sum(a, b) { return a + b; } sum(10, '20'); // 30?
var ten = '10'; ten.toFixed(2); // Uncaught TypeError: b.toFixed is not a function function sum(a, b) { return a + b; } sum(10, '20'); // 30?
// app.js /** * @typedef {Object} User * @property {string} name 사용자 이름. ex) capt * @property {number} age 사용자 나이. ex) 100 * * @param {number} id 사용자 아이디 * @return {Promise<User>} 사용자 정보 **/ function fetchUserById(id) { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); // { name: 'capt', age: 100 } }
// app.js /** * @typedef {Object} User * @property {string} name 사용자 이름. ex) capt * @property {number} age 사용자 나이. ex) 100 * * @param {number} id 사용자 아이디 * @return {Promise<User>} 사용자 정보 **/ function fetchUserById(id) { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); // { name: 'capt', age: 100 } }
TIP! 간단한 API 함수부터 적용해 보세요.
/** * @typedef {Object} User * @property {string} name 사용자 이름. ex) capt * @property {number} age 사용자 나이. ex) 100 * * @param {number} id 사용자 아이디 * @return {Promise<User>} 사용자 정보 **/ function fetchUserById(id) { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); }
/** * @typedef {Object} User * @property {string} name 사용자 이름. ex) capt * @property {number} age 사용자 나이. ex) 100 * * @param {number} id 사용자 아이디 * @return {Promise<User>} 사용자 정보 **/ function fetchUserById(id) { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); }
interface User { name: string; age: number; } function fetchUserById(id: number): Promise<User> { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); }
interface User { name: string; age: number; } function fetchUserById(id: number): Promise<User> { const url = `https://ts.levelup/users/${id}`; return fetch(url).then(res => res.json()); }