TypeScript 파일의 모든 메서드에 JSDoc 주석을 추가합니다.
TypeScript 파일의 모든 메서드에 JSDoc 주석을 추가합니다. 코드의 가독성과 IDE 지원을 향상시킵니다.
모든 메서드에 다음 형식의 JSDoc 주석을 추가합니다:
/**
* 메서드가 수행하는 작업에 대한 간결한 설명
*
* @param {타입} 파라미터명 파라미터에 대한 설명
* @returns {리턴타입} 반환값에 대한 설명
*/
@param {타입} 파라미터명 설명Promise<T>Map<K, V>[파라미터명] 형식으로 표기@returns {타입} 설명void 혹은 Promise<void> 반환인 경우 생략 가능Promise<User[]>)@throws {에러타입} 발생 조건 설명| TypeScript 타입 | JSDoc 표기 |
|---|---|
string | {string} |
number | {number} |
boolean | {boolean} |
string[] | {string[]} |
Array<string> | {Array<string>} |
Promise<void> | {Promise<void>} |
Map<string, number> | {Map<string, number>} |
T extends Base | {T} |
Record<K, V> | {Record<K, V>} |
CustomType | {CustomType} |
string | null | {string | null} |
Partial<User> | {Partial<User>} |
/**
* 사용자 ID로 사용자 정보를 조회
*
* @param {string} userId 조회할 사용자의 고유 ID
* @returns {Promise<User>} 조회된 사용자 정보
*/
async findUserById(userId: string): Promise<User> {
// ...
}
/**
* 페이지네이션을 적용하여 게시글 목록을 조회
*
* @param {number} page 조회할 페이지 번호 (1부터 시작)
* @param {number} limit 페이지당 게시글 수
* @param {string} [sortBy] 정렬 기준 필드명
* @returns {Promise<Post[]>} 게시글 목록
*/
async getPosts(page: number, limit: number, sortBy?: string): Promise<Post[]> {
// ...
}
/**
* 캐시에서 데이터를 조회하거나 없으면 로더 함수를 실행하여 캐시에 저장
*
* @param {string} key 캐시 키
* @param {() => Promise<T>} loader 캐시 미스 시 실행할 로더 함수
* @returns {Promise<T>} 캐시된 데이터 또는 새로 로드된 데이터
*/
async getOrSet<T>(key: string, loader: () => Promise<T>): Promise<T> {
// ...
}
/**
* 이벤트 리스너를 등록
*
* @param {string} eventName 이벤트 이름
* @param {EventHandler} handler 이벤트 핸들러 함수
*/
on(eventName: string, handler: EventHandler): void {
// ...
}
/**
* 설정 파일을 파싱하여 객체로 변환
*
* @param {string} filePath 설정 파일 경로
* @returns {Config} 파싱된 설정 객체
* @throws {FileNotFoundError} 파일이 존재하지 않는 경우
* @throws {ParseError} 파일 형식이 올바르지 않은 경우
*/
parseConfig(filePath: string): Config {
// ...
}
/**
* 내부 캐시를 초기화
*/
private clearCache(): void {
// ...
}
/**
* 배열의 각 요소에 대해 비동기 작업을 순차적으로 실행
*
* @param {T[]} items 처리할 항목 배열
* @param {(item: T, index: number) => Promise<R>} callback 각 항목에 대해 실행할 비동기 콜백
* @returns {Promise<R[]>} 모든 콜백 결과의 배열
*/
async mapSequential<T, R>(
items: T[],
callback: (item: T, index: number) => Promise<R>
): Promise<R[]> {
// ...
}
다음 메서드/함수에 JSDoc을 추가합니다:
function)다음은 JSDoc 추가를 생략합니다: