0Pricing
TypeScript Academy · Lekcja

Definiowanie kształtów obiektów za pomocą interfejsów

Użyj interface do opisania struktury obiektu.

Definiowanie kształtów obiektów za pomocą interfejsów to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Interfejsy opisują kształt obiektów w TypeScript. Definiują, które właściwości istnieją, jakie mają typy oraz czy są opcjonalne lub tylko do odczytu.

Podstawowy interfejs

Zdefiniuj interfejs za pomocą słowa kluczowego `interface`, a następnie podaj nazwy właściwości i ich typy.
interface User {
  id: number;
  name: string;
  email: string;
}
const alice: User = { id: 1, name: 'Alice', email: 'a@b.com' };

Właściwości opcjonalne za pomocą ?

Oznacz właściwości jako opcjonalne za pomocą `?`. Właściwość opcjonalna może być obecna lub nieobecna.
interface Config {
  host: string;
  port?: number;     // optional
  timeout?: number;  // optional
}

Właściwości tylko do odczytu

Właściwości tylko do odczytu można ustawić raz (podczas tworzenia), ale nie można ich później zmieniać.
interface Point {
  readonly x: number;
  readonly y: number;
}
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error!

Sygnatury metod

Interfejsy mogą zawierać sygnatury metod opisujące kształt funkcji.
interface Animal {
  name: string;
  speak(): string;
  move(distance: number): void;
}

Sygnatury indeksów

Użyj sygnatury indeksu, gdy obiekt ma dynamiczne klucze określonego typu.
interface StringMap {
  [key: string]: string;
}
const headers: StringMap = {
  'content-type': 'application/json',
  'accept': 'text/html',
};

Typowanie strukturalne

TypeScript używa typowania strukturalnego — obiekt spełnia interfejs, jeśli ma wymagane właściwości, niezależnie od tego, jak został utworzony.
interface Named { name: string; }
function greet(obj: Named) { console.log(obj.name); }
greet({ name: 'Alice', age: 30 }); // Extra props OK when not a literal

Sprawdzanie nadmiarowych właściwości

TypeScript zgłasza błąd, gdy literał obiektu ma dodatkowe właściwości, których nie ma w interfejsie. Jest to sprawdzanie nadmiarowych właściwości.
interface Config { host: string; }
// const c: Config = { host: 'localhost', extra: 1 }; // Error on literal
const obj = { host: 'localhost', extra: 1 };
const c: Config = obj; // OK — not a fresh literal

Interfejs dla typów funkcji

Interfejsy mogą opisywać typy wywoływalne za pomocą sygnatury wywołania.
interface Greeter {
  (name: string): string;
}
const greet: Greeter = name => 'Hello, ' + name;

Zagnieżdżone interfejsy

Właściwości mogą odwoływać się do innych interfejsów, aby budować zagnieżdżone kształty obiektów.
interface Address { street: string; city: string; }
interface Person { name: string; address: Address; }
const p: Person = { name: 'Alice', address: { street: '1 Main', city: 'NY' } };

Interfejs a instancja klasy

Interfejsy opisują publiczny kształt klasy, ale są usuwane w czasie działania. Klasa zapewnia implementację.
interface Saveable { save(): Promise<void>; }
class UserService implements Saveable {
  async save() { /* ... */ }
}

Szybkie sprawdzenie

Co się stanie, gdy przypiszesz literał obiektu z dodatkową właściwością do typu interfejsu w TypeScript?

Podsumowanie

Interfejsy definiują kształty obiektów za pomocą typowanych właściwości, modyfikatorów opcjonalności i tylko do odczytu, sygnatur metod oraz sygnatur indeksów. TypeScript używa typowania strukturalnego — liczy się zgodność kształtu, a nie deklaracje.

Często zadawane pytania

Czy lekcja „Definiowanie kształtów obiektów za pomocą interfejsów” jest bezpłatna?

Tak — pełny tekst „Definiowanie kształtów obiektów za pomocą interfejsów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Definiowanie kształtów obiektów za pomocą interfejsów”?

Użyj interface do opisania struktury obiektu. Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Definiowanie kształtów obiektów za pomocą interfejsów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie kształtów obiektów za pomocą interfejsów
  2. Aliasy typów dla złożonych typów
  3. Rozszerzanie i scalanie interfejsów
  4. Interface czy type: kiedy używać którego
← Powrót do TypeScript Academy