ts๋ก ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐ ์ค์ interface์ ์ถ๊ฐ์ ์ธ ์ค๋ช ์ด ์์ผ๋ฉด ์ข๊ฒ ๋ค~! ๋ผ๋ ์๊ฐ์ด ๋ค์ด์ ํ์์๋ method๋ method parameter์ ๋ํ ์ค๋ช ์ ๋ฌ์์ค ๋ ์์ฃผ ์ฌ์ฉํ๋ JSDoc์ ์ด์ฉํ์ฌ interface ์ค๋ช ์ ์ถ๊ฐํด ๋ณด์๋ค.
๋จผ์ JSDoc์ ๋ํด ์ค๋ช ํ์๋ฉด, JSDoc์ ์๋ฐ์คํฌ๋ฆฝํธ์ฉ API ๋ฌธ์ ์์ฑ๊ธฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API๋ฅผ ๋ฌธ์ํํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ค. module, namespaces, classes, methods, method parameters ๋ฑ๊ณผ ๊ฐ์ ํญ๋ชฉ๋ค์ ๋ฌธ์ํํ ์ ์๋ค.
JSDoc์ ์ฝ๋ ์์ฒด์ ํจ๊ป ์์ค์ฝ๋์ ์ง์ ๋ฌธ์ ์ฃผ์์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
JSDoc ์ฃผ์์ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ํํ๋ ค๋ ์ฝ๋ ๋ฐ๋ก ์์ ์์นํด์ผ ํ๋ฉฐ ๊ฐ ์ฃผ์์ JSDoc ํ์์์ ์ธ์๋๋๋ก /** ์ํ์ค๋ก ์์ํด์ผ ํ๋ค. /*, /***, ๋๋ 3๊ฐ ์ด์์ ๋ณํ๋ก ์์ํ๋ ์ฃผ์๊ณผ ์ผ๋ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฃผ์์ ๋ฌด์๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฃผ์ ๋ธ๋ก์ ํ์ฑ์ ์ต์ ํ ์ ์๋๋ก ํ๊ธฐ ์ํจ์ด๋ค.
1. ๊ฐ์ฅ ๋จ์ํ ๋ฒ์ ์ ๋ฌธ์ํ ๋ฐฉ๋ฒ.
/** This is a description of the foo function. */
function foo() {
}
2. JSDoc ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ๋ฒ.
/**
* Represents a book.
* @constructor
*/
function Book(title, author) {
}
3. ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ.
/**
* Represents a book.
* @constructor
* @param {string} title - The title of the book.
* @param {string} author - The author of the book.
*/
function Book(title, author) {
}
interface ICardSection {
backgroundcolor?: string;
bordercolor?: string;
borderradius?: number;
width?: string;
height?: string;
children: React.ReactNode;
/**
* margin์ ๋จ์๊น์ง ์ ์ด์ผ ํ๋ค.
*/
margin?: string;
}
๊ทธ๋์ ์์ ๊ฐ์ด interface์ JSDoc์ ์ถ๊ฐํ์ฌ ์ ๋ณด๋ฅผ ๋ฌธ์ํํ๋ฉด, ์๋์ ๊ฐ์ด props์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ถ๊ฐ ์ ๋ณด๊ฐ ๋ ธ์ถ๋๋ค.
๐ธ ์ถ์ฒ ๐ธ
poiemaweb - JSDoc์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ JS ] Promise VS async await ๋น๊ต (0) | 2024.08.25 |
---|---|
[ JS ] Event.stopPropagation์ Event.preventDefault ์ ์ฐจ์ด์ ์์๋ณด๊ธฐ. (0) | 2024.07.14 |
[TS] ํ๋ก์ ํธ์ tsconfig ์ค์ ํ๊ธฐ. (0) | 2023.05.28 |
[ JavaScript ] async await ๋ฌธ๋ฒ (0) | 2022.12.04 |
[ JavaScript / Promise ] ์๋ฐ์คํฌ๋ฆฝํธ์ Promise์ ๋ํ์ฌ (0) | 2022.10.20 |