0Pricing
TypeScript Academy · 강의

선택적 및 기본 매개변수

?와 기본값으로 누락된 인수를 처리합니다.

선택적 및 기본 매개변수은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

TypeScript에서는 `?`를 사용하거나 기본값을 지정하여 함수 매개변수를 선택 사항으로 만들 수 있습니다. 이를 통해 타입 안전성을 유지하면서 유연한 API를 만들 수 있습니다.

?를 사용한 선택적 매개변수

매개변수 이름 뒤에 `?`를 추가하여 선택 사항으로 만드십시오. 함수 내부에서 해당 매개변수의 타입은 T | undefined가 됩니다.
function greet(name: string, greeting?: string): string {
  return (greeting ?? 'Hello') + ', ' + name;
}

기본 매개변수 값

`=`를 사용하여 기본값을 할당하십시오. TypeScript는 기본값에서 타입을 추론하며, 호출 위치에서 해당 매개변수는 선택 사항이 됩니다.
function greet(name: string, greeting: string = 'Hello'): string {
  return greeting + ', ' + name;
}
greet('Alice');         // 'Hello, Alice'
greet('Bob', 'Hi');    // 'Hi, Bob'

선택적 매개변수와 기본 매개변수 비교

선택적 매개변수 `?`는 생략하면 undefined를 제공합니다. 기본값은 undefined를 대체값으로 바꿉니다. 두 방식 모두 호출 위치에서 매개변수를 필수로 지정하지 않아도 되게 합니다.
function opt(x?: number) { return x; }     // x: number | undefined
function def(x: number = 0) { return x; }  // x: number

배치 규칙

선택적 매개변수와 기본 매개변수는 함수 시그니처에서 필수 매개변수 뒤에 와야 합니다.
// Correct order
function create(name: string, role: string = 'user', active?: boolean) {}

// Error: required after optional
// function bad(x?: string, y: string) {}

undefined를 명시적으로 전달하기

기본값이 있는 매개변수에 `undefined`를 전달하여 기본값이 적용되게 할 수 있습니다.
function log(msg: string, level: string = 'info') { console.log(level, msg); }
log('test', undefined); // level is 'info'

선택적 매개변수와 오버로드

때로는 선택적 매개변수보다 오버로드를 사용하는 편이 더 명확합니다. 특히 매개변수의 존재 여부에 따라 함수 동작이 크게 달라지는 경우에 그렇습니다.

기본 객체 매개변수

각 속성에 기본값을 지정하면서 객체 매개변수를 구조 분해할 수 있습니다.
function connect({ host = 'localhost', port = 5432 } = {}) {
  return `${host}:${port}`;
}

기본 배열 매개변수

기본 배열 매개변수도 같은 방식으로 작동합니다. undefined 확인을 피하려면 기본 빈 배열을 제공하십시오.
function joinAll(parts: string[], sep: string = ', '): string {
  return parts.join(sep);
}

호출 위치에서 선택적 체이닝

함수 참조 자체가 선택 사항이라면 선택적 체이닝 `?.()`을 사용하여 함수가 존재할 때만 호출하십시오.
interface Config { onReady?: () => void; }
function init(config: Config) {
  config.onReady?.();
}

함수 내부의 선택적 매개변수 타입

함수 내부에서 선택적 매개변수 `x?: T`의 타입은 `T | undefined`입니다. 이를 T로 사용하려면 먼저 타입을 좁혀야 합니다.
function process(id?: number) {
  if (id === undefined) return;
  console.log(id * 2); // id is number here
}

빠른 확인

함수 본문 내부에서 `count?: number`로 선언한 매개변수의 타입은 무엇입니까?

복습

선택적 매개변수에는 `?`를, 기본값에는 `= value`를 사용하십시오. 함수 내부에서 선택적 매개변수는 T | undefined입니다. 기본값은 undefined를 자동으로 대체합니다. 두 방식 모두 필수 매개변수 뒤에 와야 합니다.

자주 묻는 질문

“선택적 및 기본 매개변수” 강의는 무료인가요?

네 — “선택적 및 기본 매개변수” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“선택적 및 기본 매개변수”에서 뭘 배우나요?

?와 기본값으로 누락된 인수를 처리합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“선택적 및 기본 매개변수” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 매개변수 및 반환 형식 주석
  2. 선택적 및 기본 매개변수
  3. Rest 매개변수 및 형식과 함께 사용하는 전개
  4. void, never 및 함수 시그니처
← TypeScript Academy(으)로 돌아가기