Przecięcie (A & B)

Typ łączący wszystkie pola kilku typów jednocześnie.

Na tej stronie

Przykład

#
TypeScript
type Timestamps = { createdAt: string; updatedAt: string }
type Lesson = { title: string; minutes: number }
type StoredLesson = Lesson & Timestamps

const lesson: StoredLesson = {
  title: 'Flexbox',
  minutes: 14,
  createdAt: '2026-09-01',
  updatedAt: '2026-09-28'
}

console.log(Object.keys(lesson).length)
Wynik
4

Definicja i zastosowanie

#

Przecięcie łączy typy znakiem &. Wartość typu A & B musi spełniać oba typy naraz, czyli mieć wszystkie pola z A i wszystkie z B.

Najczęściej służy do składania typów obiektów z mniejszych części, na przykład User & Timestamps albo do dodania pól do typu z biblioteki. To odpowiednik extends dla aliasów type.

Przecięcie typów, które się wykluczają (np. string & number), daje never. Tak samo przy polach o tej samej nazwie, ale niezgodnych typach.

Składnia

#
Składnia
type Nazwa = TypA & TypB

Dobre praktyki

#
  • Do składania typów obiektów przecięcie jest wygodne, ale przy konfliktach nazw pól łatwo o never. Sprawdzaj wynik w edytorze.
  • W interfejsach ten sam efekt uzyskasz przez extends, które lepiej zgłasza konflikty.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.