extends (interfejsy)

Rozszerzanie interfejsu o nowe pola, na bazie istniejącego.

Na tej stronie

Przykład

#
TypeScript
interface Person {
  name: string
  email: string
}

interface Student extends Person {
  level: number
}

interface Mentor extends Person {
  specialization: string
}

const student: Student = { name: 'Ola', email: 'ola@example.com', level: 3 }
const mentor: Mentor = { name: 'Piotr', email: 'piotr@example.com', specialization: 'React' }

console.log(`${student.name} uczy się z ${mentor.name} (${mentor.specialization})`)
Wynik
Ola uczy się z Piotr (React)

Definicja i zastosowanie

#

Słowo extends pozwala zbudować interfejs na bazie innego. Nowy interfejs dziedziczy wszystkie pola bazowego i dodaje własne. Można rozszerzać kilka interfejsów naraz, wymieniając je po przecinku.

Dzięki temu unikasz powtarzania pól wspólnych dla wielu typów. Na przykład Student i Mentor mogą rozszerzać wspólny Person z imieniem i adresem e-mail.

Rozszerzający interfejs może zawęzić typ pola bazowego (np. z string na unię literałów), ale nie może go zmienić na niezgodny.

Składnia

#
Składnia
interface Pochodny extends Bazowy, Drugi {
  nowePole: typ
}

Dobre praktyki

#
  • Wspólne pola wyciągaj do interfejsu bazowego, ale nie buduj głębokich hierarchii. Dwa, trzy poziomy wystarczą.
  • Przy aliasach type ten sam efekt daje przecięcie: type Student = Person & { level: number }.

Powiązane hasła

#

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