TypeScriptInterfejsy i klasy
extends (interfejsy)
Rozszerzanie interfejsu o nowe pola, na bazie istniejącego.
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
typeten sam efekt daje przecięcie:type Student = Person & { level: number }.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.