0Pricing
TypeScript Academy · 강의

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 here

JSDoc 열거형

@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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 마이그레이션 시작하기: allowJs 및 checkJs
  2. JSDoc 형식 주석을 다리로 활용하기
  3. 파일별 변환 전략
  4. 형식이 없는 서드파티 라이브러리 다루기
← TypeScript Academy(으)로 돌아가기