0Pricing
TypeScript Academy · 강의

교차 형식: A와 B

&로 형식을 결합해 속성을 합칩니다.

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

시작하기

교차 타입은 여러 타입을 하나로 결합합니다. 교차 타입의 값은 결합된 모든 타입을 동시에 만족해야 합니다.

기본 교차 타입 구문

`&` 연산자를 사용하여 교차 타입을 만듭니다. 결과에는 두 타입의 모든 속성이 포함됩니다.
type Named = { name: string };
type Aged = { age: number };
type Person = Named & Aged;
const alice: Person = { name: 'Alice', age: 30 };

모든 속수 필요

교차 타입에는 결합된 모든 타입의 모든(ALL) 속성이 필요합니다. 속성이 하나라도 누락되면 타입 오류입니다.
type A = { x: number };
type B = { y: number };
type AB = A & B;
// const p: AB = { x: 1 }; // Error — missing y

객체 타입 병합하기

교차 타입은 서로 확장하지 않는 두 객체 타입을 병합할 때 자주 사용합니다.
type Serializable = { serialize(): string };
type Loggable = { log(): void };
type Service = Serializable & Loggable;

교차 타입과 확장의 차이

인터페이스 확장과 교차 타입은 객체 타입에서 비슷한 결과를 만들지만, 교차 타입은 유니언과 원시 타입을 포함한 타입 별칭에도 사용할 수 있습니다.
// Interface extend:
interface C extends A, B {}

// Intersection type:
type D = A & B;
// Both give the same shape for simple objects

충돌하는 타입과 교차 타입

교차된 두 타입에 충돌하는 타입의 동일한 속성이 있으면 해당 속성의 결과는 `never`가 됩니다.
type X = { id: string };
type Y = { id: number };
type XY = X & Y;
// XY.id is string & number = never — impossible!

함수 매개변수의 교차 타입

교차 타입을 사용하면 여러 인터페이스 계약을 만족해야 하는 인수를 허용할 수 있습니다.
function process(item: Serializable & Loggable): void {
  item.log();
  console.log(item.serialize());
}

교차 타입을 사용한 믹스인 패턴

교차 타입을 사용하면 믹스인 패턴을 구현하여 여러 소스의 동작을 결합할 수 있습니다.
type Timestamped<T> = T & { createdAt: Date };
type User = Timestamped<{ name: string; email: string }>;

원시 타입의 교차는 never로 축소됨

서로 겹칠 수 없는 원시 타입을 교차하면 `never`로 축소됩니다.
type T = string & number; // never — a value can't be both

교차 타입과 유니언의 핵심 차이

유니언(`|`)은 OR을 의미하므로 값은 여러 타입 중 하나일 수 있습니다. 교차 타입(`&`)은 AND를 의미하므로 값은 모든 타입을 만족해야 합니다.

제네릭과 교차 타입 사용하기

유연하고 확장 가능한 타입을 만들려면 교차 타입을 사용하여 제네릭 타입과 추가 속성을 결합하십시오.
type WithId<T> = T & { id: number };
const user: WithId<{ name: string }> = { id: 1, name: 'Alice' };

빠른 확인

`type T = string & number`는 무엇으로 평가됩니까?

복습

교차 타입(`&`)에는 결합된 모든 타입의 모든(ALL) 속성이 필요합니다. 교차 타입을 사용하여 객체 형태를 병합하고, 믹스인을 구현하며, 제네릭 타입을 결합하십시오. 충돌하는 원시 타입의 교차는 never로 축소됩니다.

자주 묻는 질문

“교차 형식: A와 B” 강의는 무료인가요?

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

“교차 형식: A와 B”에서 뭘 배우나요?

&로 형식을 결합해 속성을 합칩니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“교차 형식: A와 B” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. 유니언 형식: A 또는 B
  2. 교차 형식: A와 B
  3. 안전한 패턴 매칭을 위한 판별 유니언
  4. 유니언과 교차 형식의 실전 패턴
← TypeScript Academy(으)로 돌아가기