JSDoc 형식 주석을 다리로 활용하기
변환하기 전에 JSDoc을 사용해 JS 파일에 형식을 추가합니다.
JSDoc 형식 주석을 다리로 활용하기은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
TypeScript로 연결하는 JSDoc 다리
checkJs: true가 활성화되면 TypeScript는 JavaScript 파일의 JSDoc 타입 주석을 읽을 수 있습니다. 따라서 파일 이름을 바꾸지 않고도 JS에 타입을 추가할 수 있습니다.
/** @type {string} */
let name = "Alice"; // TypeScript checks this as string@param과 @returns
JSDoc 태그를 사용하여 함수 매개변수와 반환 타입을 주석으로 표시합니다.
/**
* @param {string} name
* @param {number} age
* @returns {string}
*/
function greet(name, age) {
return `${name} is ${age}`;
}객체 타입에 @typedef 사용하기
@typedef를 사용하여 JSDoc에서 재사용할 수 있는 타입 별칭을 정의합니다.
/**
* @typedef {Object} User
* @property {string} id
* @property {string} name
* @property {boolean} isActive
*/
/** @type {User} */
const user = { id: "1", name: "Alice", isActive: true };제네릭에 @template 사용하기
@template을 사용하여 JSDoc에서 제네릭 함수를 작성합니다.
/**
* @template T
* @param {T[]} arr
* @returns {T | undefined}
*/
function first(arr) {
return arr[0];
}
// TypeScript infers: first<T>(arr: T[]): T | undefined.ts 파일에서 타입 가져오기
JSDoc에서는 @type {import("./types").User}를 사용하여 TypeScript 타입을 JS 파일로 가져올 수 있습니다.
/** @type {import("./types").User} */
const admin = { id: "admin", name: "Admin", isActive: true };파일별 검사에 @ts-check 사용하기
JS 파일의 맨 위에 // @ts-check를 추가하면 전역에서 checkJs: true를 설정하지 않고도 해당 파일에만 TypeScript 검사를 활성화할 수 있습니다.
// @ts-check
/** @type {number} */
const count = "oops"; // Error: string not assignable to number@ts-ignore와 @ts-expect-error
인라인 지시문을 사용하여 특정 JSDoc 타입 오류만 억제하고 파일 전체를 비활성화하지 않을 수 있습니다.
// @ts-ignore
const x = badFunction(); // single error suppressed
// @ts-expect-error
const y = anotherBad(); // error expected hereJSDoc 열거형
@enum을 사용하여 JSDoc에서 TypeScript 열거형을 흉내 낼 수 있습니다.
/** @enum {string} */
const Direction = { Left: "left", Right: "right", Up: "up" };JSDoc의 타입 단언
JSDoc 타입 단언에는 /** @type {SomeType} */ (expression)을 사용합니다. 이는 TypeScript의 as SomeType과 같은 역할을 합니다.
const el = /** @type {HTMLInputElement} */ (document.getElementById("input"));
el.value; // el: HTMLInputElement — typed.ts로 옮길 시점
JSDoc 주석은 목적지가 아니라 다리입니다. 파일에 타입 주석을 모두 추가하고 안정화되면 파일 이름을 .ts로 바꾸고, JSDoc 타입 주석을 제거한 뒤 TypeScript 고유의 구문을 사용합니다.
// Rename: utils.js → utils.ts
// Replace JSDoc: /** @param {string} x */ → (x: string)복습: 다리 역할을 하는 JSDoc
JSDoc 타입 주석을 사용하면 파일 이름을 바꾸지 않고도 JS 파일에서 TypeScript 검사를 활성화할 수 있습니다. TypeScript 고유 구문으로 변환하기 전에 @type, @param, @typedef, @template을 사용하여 점진적으로 타입 안전성을 추가합니다.
빠른 확인
전역 checkJs 없이 단일 파일에서 TypeScript 검사를 활성화하는 JSDoc 태그는 무엇인가요?
학습 내용
JSDoc 타입 주석은 JavaScript와 TypeScript를 연결합니다. @type, @param, @typedef, @template을 사용하여 JS 파일에 타입을 추가합니다. // @ts-check로 파일별 검사를 활성화한 다음, 준비가 되면 TypeScript 고유 구문으로 변환합니다.
자주 묻는 질문
“JSDoc 형식 주석을 다리로 활용하기” 강의는 무료인가요?
네 — “JSDoc 형식 주석을 다리로 활용하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“JSDoc 형식 주석을 다리로 활용하기”에서 뭘 배우나요?
변환하기 전에 JSDoc을 사용해 JS 파일에 형식을 추가합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“JSDoc 형식 주석을 다리로 활용하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 마이그레이션 시작하기: allowJs 및 checkJs
- JSDoc 형식 주석을 다리로 활용하기
- 파일별 변환 전략
- 형식이 없는 서드파티 라이브러리 다루기