Menu
Coddy logo textTech

Interfejsy generyczne

Część sekcji Wprowadzenie do TypeScript ścieżki JavaScript w Coddy. Lekcja 61 z 73.

Podobnie jak możesz tworzyć funkcje generyczne, możesz również tworzyć interfejsy generyczne. Pozwala to określić strukturę obiektu, zachowując elastyczność i możliwość ponownego wykorzystania typów niektórych właściwości.

Oto jak utworzyć interfejs generyczny, używając tej samej składni parametru typu:

interface Container<T> {
  value: T;
  isEmpty: boolean;
}

<T> po nazwie interfejsu tworzy parametr typu, którego można używać w całej definicji interfejsu. W tym przykładzie właściwość value będzie miała typ określony podczas używania interfejsu, natomiast isEmpty pozostaje niezmiennie typu boolean.

Gdy korzystasz z interfejsu generycznego, określasz konkretny typ w nawiasach ostrych:

const stringContainer: Container<string> = {
  value: "hello",
  isEmpty: false
};
const numberContainer: Container<number> = {
  value: 42,
  isEmpty: false
};
challenge icon

Wyzwanie

Łatwy

Utwórz generyczny interfejs o nazwie Result, który może przechowywać dane dowolnego typu wraz z informacją o powodzeniu.

Interfejs powinien mieć dwie właściwości:

  • success typu boolean
  • data typu T (parametr typu generycznego)

Utwórz następujące obiekty, używając swojego interfejsu generycznego:

  • stringResult typu Result<string> z success: true i data: "Operation completed"
  • numberResult typu Result<number> z success: true i data: 42
  • booleanResult typu Result<boolean> z success: false i data: false
  • arrayResult typu Result<string[]> z success: true i data: ["item1", "item2", "item3"]

Utwórz funkcję generyczną o nazwie processResult, która:

  • Używa parametru typu generycznego T
  • Przyjmuje jeden parametr result typu Result<T>
  • Zwraca komunikat tekstowy
  • Jeśli success ma wartość true, zwraca "Success: [data]"
  • Jeśli success ma wartość false, zwraca "Failed: [data]"

Wyświetl następujące wyniki:

  • Wyświetl wynik wywołania processResult z argumentem stringResult
  • Wyświetl wynik wywołania processResult z argumentem numberResult
  • Wyświetl wynik wywołania processResult z argumentem booleanResult
  • Wyświetl wynik wywołania processResult z argumentem arrayResult
  • Wyświetl stringResult.data

Spróbuj swoich sił

// TODO: Napisz tutaj swój kod

// Utwórz generyczny interfejs Result


// Utwórz obiekty przy użyciu interfejsu Result


// Utwórz generyczną funkcję processResult


// Wyświetl wymagane wyniki
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wprowadzenie do TypeScript

Poćwicz samodzielnie: Edytor online TypeScript