Javascript 주석 잘 쓰기-1

2021. 9. 24. 00:29개발/Javascript

요즘 TypeScript 로 개발을 하다보니 주석에 타입을 세부적으로 하는 일이 많이 줄어 들었다.

하지만, 현재 서비스 중인 상태라면 TypeCheck 를 반영 하기에는 일정이 없고,

코드는 any 지옥 이라면 정말 힘들다. 이럴 경우에는 Javascript에 주석만 잘 쓰더라도 정말 좋아진다.

javascript any 지옥

 

1. type

/**
 * @type {Number}
 */
var hiNumber;
// => number

/**
 * @type {?Number}
 */
var hiMaybeNumber;
// => undefined or number

/**
 * @type {Array.<Number>}
 */
var arrayNumber;
// => [number, number, number, ...]

이제 any가 대신 타입이 보인다!

2. typedef + type

/**
 * @typedef TestMap
 * @property {?number} a
 * @property {?string}  b
 * @property {!Boolean} c
 */
/**
 * @type {TestMap}
 */
var testMap = {};
// => {a: number, b: string, c: boolean}

typedef 와 type 을 조합하면 typescript 에 inteface 같은 기분을 낼 수 있어요.

3. params + returns

/**
 * @param {!Number} a
 * @param {!Number} b
 * @param {!Number} c
 * @returns {String}
 */
function hello(a, b, c) {
  return a + b + c;
}



/**
 * @typedef TestMap
 * @property {?number} a
 * @property {?string}  b
 * @property {!Boolean} c
 */
 
/**
 * @param {Number} a
 * @param {String} b
 * @param {Boolean} c
 * @returns {TestMap}
 */
function hello2(a, b, c) {
  return { a: a, b: b, c: c };
}

/**
 * @param  {...String} test
 * @returns {Number}
 */
function hello3(...test) {
  return test.length;
}

any 지옥에서 빠져 나올 수 있습니다. 

 

 

TypeChecker를 쓴다면 필요 없는 주석이 많습니다.