📌 JSDoc
: TypeScript처럼 타입을 지정하는 기능
✅ JSDoc 사용
설치
npm install -g jsdoc
생성
jsdoc path/to/your/javascript/files
✅ JSDoc 문법
/** ... */
- @type: 타입을 참조
- @example: 함수 사용 예제를 제공
- @param: 함수의 매개변수
- @returns (@return): 함수의 반환값을 설명
- @typedef: 복잡한 객체 타입을 정의
- @property: 객체의 속성을 설명
함수
/**
* @param {number} a - 첫 번째 숫자.
* @param {number} b - 두 번째 숫자.
* @returns {number} 두 숫자의 합.
* @example
* // 예제 사용법
* const result = add(2, 3);
* console.log(result); // 5
*/
function add(a, b) {
return a + b;
}
객체
/**
* @typedef {Object} User
* @property {string} name - 사용자 이름.
* @property {number} age - 사용자 나이.
*/
/**
* @param {User} user - 사용자 정보.
* @returns {string} 사용자 정보 문자열.
* @example
* // 예제 사용법
* const user = { name: 'Alice', age: 25 };
* console.log(createUserInfo(user)); // 'Name: Alice, Age: 25'
*/
function createUserInfo(user) {
return `Name: ${user.name}, Age: ${user.age}`;
}
클래스
/**
* @class
*/
class Person {
/**
* @constructor
* @param {string} name - 사람의 이름.
* @param {number} age - 사람의 나이.
*/
constructor(name, age) {
/**
* @private
* @type {string}
*/
this._name = name;
/**
* @private
* @type {number}
*/
this._age = age;
}
/**
* @returns {string} 사람의 이름.
*/
getName() {
return this._name;
}
/**
* @returns {number} 사람의 나이.
*/
getAge() {
return this._age;
}
}