-
JSDocπ»κ°λ°/Javascript 2024. 9. 27. 17:18728x90
JSDoc?
- JSDocμ JavaScript μ½λμ μ£Όμμ μΆκ°νμ¬ μ½λμ ꡬ쑰μ κΈ°λ₯μ λ¬Έμννλ λꡬμ λλ€.
- JSDoc μ£Όμμ μ½λμ κ°λ μ±μ λμ΄κ³ , μλμΌλ‘ API λ¬Έμλ₯Ό μμ±νλ λ° μ μ©ν©λλ€.
- JSDoc μ£Όμμ μΌλ°μ μΌλ‘ /** ... */ νμμΌλ‘ μμ±λ©λλ€.
JSDoc νκ·Έ
- @param: ν¨μμ 맀κ°λ³μλ₯Ό μ€λͺ ν©λλ€.
- @returns: ν¨μμ λ°ν κ°μ μ€λͺ ν©λλ€.
- @typedef: μ¬μ©μ μ μ νμ μ μ μν©λλ€.
- @property: κ°μ²΄μ μμ±μ μ€λͺ ν©λλ€.
- @class: ν΄λμ€λ₯Ό μ€λͺ ν©λλ€.
- @method: ν΄λμ€μ λ©μλλ₯Ό μ€λͺ ν©λλ€.
μ¬μ© μμ
- ν¨μ μ£Όμ:
/** * λ μλ₯Ό λν©λλ€. * @param {number} a - 첫 λ²μ§Έ μ«μ. * @param {number} b - λ λ²μ§Έ μ«μ. * @returns {number} λ μμ ν©. */ function add(a, b) { return a + b; }
- κ°μ²΄ μ£Όμ:
/** * μ¬μ©μ κ°μ²΄. * @typedef {Object} User * @property {string} name - μ¬μ©μ μ΄λ¦. * @property {number} age - μ¬μ©μ λμ΄. */ /** * μ¬μ©μ μ 보λ₯Ό μΆλ ₯ν©λλ€. * @param {User} user - μ¬μ©μ κ°μ²΄. */ function printUser(user) { console.log(`Name: ${user.name}, Age: ${user.age}`); }
- ν΄λμ€ μ£Όμ:
/** * μλμ°¨ ν΄λμ€. */ class Car { /** * μλμ°¨ μμ±μ. * @param {string} make - μ μ‘°μ¬. * @param {string} model - λͺ¨λΈ. */ constructor(make, model) { this.make = make; this.model = model; } /** * μλμ°¨ μ 보λ₯Ό λ°νν©λλ€. * @returns {string} μλμ°¨ μ 보. */ getInfo() { return `${this.make} ${this.model}`; } }
JSDocμ μ¬μ©νλ©΄ μ½λμ μ΄ν΄λλ₯Ό λμ΄κ³ , νμ κ°μ νμ μ μννκ² ν μ μμ΅λλ€.
JSDocμ ν΅ν΄ μμ±λ λ¬Έμλ API λ¬Έμν λꡬλ₯Ό μ¬μ©νμ¬ HTML νμμΌλ‘ λ³νν μ μμ΅λλ€.
TypeScriptμμ JSDoc μ¬μ©
- JSDocμ TypeScript(TS)μμλ μ¬μ©ν μ μμ§λ§, TypeScript μμ²΄κ° κ°λ ₯ν νμ μμ€ν μ μ 곡νκΈ° λλ¬Έμ JSDocμ νμμ±μ΄ μ€μ΄λ€ μ μμ΅λλ€.
- TypeScriptλ νμ μ λͺ μμ μΌλ‘ μ μν μ μλ κΈ°λ₯μ μ 곡νλ―λ‘, JSDoc μ£Όμ μμ΄λ μ½λμ νμ μ λͺ ννκ² ννν μ μμ΅λλ€.
- κ·Έλ¬λ TypeScript μ½λμ JSDocμ μ¬μ©νλ κ²μ μ¬μ ν μ μ©ν μ μμ΅λλ€. νΉν λ€μκ³Ό κ°μ κ²½μ°μ λμμ΄ λ©λλ€:
- λ¬Έμν: JSDocμ μ¬μ©νμ¬ ν¨μ, ν΄λμ€, μΈν°νμ΄μ€ λ±μ μ€λͺ μ μΆκ°νλ©΄ μ½λμ κ°λ μ±μ λμ΄κ³ , λ€λ₯Έ κ°λ°μλ€μ΄ μ΄ν΄νκΈ° μ½κ² λ§λ€ μ μμ΅λλ€.
- νμ μ 보 보κ°: TypeScriptμ νμ μμ€ν μ 보μνκΈ° μν΄ JSDocμ μ¬μ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, 볡μ‘ν νμ μ΄λ μ λ€λ¦ νμ μ μ€λͺ ν λ μ μ©ν©λλ€.
- IDE μ§μ: λ§μ IDE(μ: Visual Studio Code)λ JSDoc μ£Όμμ μΈμνμ¬ μ½λ μμ± λ° νμ μ 보λ₯Ό μ 곡νλ―λ‘, JSDocμ μ¬μ©νλ©΄ κ°λ° κ²½νμ΄ ν₯μλ μ μμ΅λλ€.
μ¬μ© μμ
/** * λ μλ₯Ό λν©λλ€. * @param {number} a - 첫 λ²μ§Έ μ«μ. * @param {number} b - λ λ²μ§Έ μ«μ. * @returns {number} λ μμ ν©. */ function add(a: number, b: number): number { return a + b; } /** * μ¬μ©μ κ°μ²΄. * @typedef {Object} User * @property {string} name - μ¬μ©μ μ΄λ¦. * @property {number} age - μ¬μ©μ λμ΄. */ /** * μ¬μ©μ μ 보λ₯Ό μΆλ ₯ν©λλ€. * @param {User} user - μ¬μ©μ κ°μ²΄. */ function printUser(user: { name: string; age: number }): void { console.log(`Name: ${user.name}, Age: ${user.age}`); }
'π»κ°λ° > Javascript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
221103 κΉλ―Όν νλ‘ νΈμλ μμΉ΄λ°λ―Έ 1μ₯: Ch03 Hacker News Client (0) 2022.11.03