Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Обобщенные классы в TypeScript

Автор: Learn Language Hub

Загружено: 2025-12-29

Просмотров: 6

Описание:

Обобщенный класс в TypeScript

Обобщенный класс в TypeScript — это класс, который работает с различными типами данных, сохраняя при этом высокую типобезопасность.

Представьте его как один многократно используемый класс, который может адаптироваться ко многим типам, не теряя корректности.

Почему нужны обобщенные классы

Без обобщений типобезопасность теряется:

class Box {
value: any;

constructor(value: any) {
this.value = value;

}
}

const box = new Box(123);
box.value.toUpperCase(); // ошибка времени выполнения

TypeScript здесь не защитит вас.

Основная идея обобщенного класса

Обобщенный класс использует параметр типа, обычно называемый T, для представления типа, который будет определен позже.

Концептуально:

Класс еще не знает тип

Тип выбирается при создании экземпляра

Один и тот же тип используется везде внутри класса

Пример обобщенного класса (концептуально)
class Box {
value: T;

constructor(value: T) {
this.value = value;

}

}

При создании объекта:

T становится числом

или T становится строкой

или любым другим типом

Логика класса остается неизменной.

Вывод типов (наиболее распространенное использование)

TypeScript обычно определяет тип автоматически:

const box = new Box("hello");

Здесь:

T рассматривается как строка

box.value — строка

методы строк разрешены

методы чисел отклонены

Обобщенный класс с методами

Обобщенные типы могут использоваться в свойствах и методах.

class Storage {
private items: T[] = [];

add(item: T) {

this.items.push(item);

}

getAll() {
return this.items;

}
}

Это гарантирует:

Хранится только один тип

Отсутствие смешивания несовместимых значений

Несколько обобщенных типов

Класс может работать с несколькими типами одновременно.

Концептуально:

Один тип для ключа

Один тип для значения

class KeyValuePair {
key: K;
value: V;

constructor(key: K, value: V) {
this.key = key;

this.value = value;

}
}

Это распространено в картах, кэшах и словарях.

Обобщенные ограничения (ограничивающие типы)

Иногда требуется разрешить только определенные типы.

Пример правила:

Тип должен иметь свойство length

class LengthLogger {
log(value: T) {
console.log(value.length);

}
}

Разрешено:

строки

массивы

Не разрешено:

числа

логические значения

Обобщенный класс с интерфейсами

Обобщенные классы часто используются с интерфейсами для создания многократно используемых систем, таких как репозитории или сервисы.

Концепция:

Интерфейс определяет поведение

Обобщенный класс предоставляет реализацию

Тип остается неизменным

Этот шаблон чрезвычайно распространен в бэкенд- и фронтенд-приложениях.

Важное правило о статических и обобщенных типах

Статические члены:

Принадлежат классу

НЕ знают, какой тип обобщенного типа

Таким образом:

Методы экземпляра могут использовать T

Статические методы не могут использовать T

Это распространенная ошибка начинающих.


Когда использовать обобщенный класс

Используйте обобщенный класс, когда:

Одна и та же логика работает для многих типов

Вам нужна строгая типобезопасность

Типы должны оставаться согласованными между методами

Избегайте обобщенных классов, когда:

Типы не связаны между собой

Достаточно простого специфического класса

Объединяющий тип был бы проще

Обобщенные классы в TypeScript

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Реализация в классах в TypeScript

Реализация в классах в TypeScript

Generics: самая пугающая функция TypeScript

Generics: самая пугающая функция TypeScript

Learn TypeScript Generics In 13 Minutes

Learn TypeScript Generics In 13 Minutes

Strings, Numbers & Math – JavaScript Tutorial for Beginners | Web Development Series | JDCodebase

Strings, Numbers & Math – JavaScript Tutorial for Beginners | Web Development Series | JDCodebase

США срочно направили авианосцы к Ирану. Взрыв в центре МВД РФ. Циклон на Камчатке / Выпуск новостей

США срочно направили авианосцы к Ирану. Взрыв в центре МВД РФ. Циклон на Камчатке / Выпуск новостей

Забудь про PowerPoint: Крутые презентации с ИИ за 5 минут (Gemini + Claude)

Забудь про PowerPoint: Крутые презентации с ИИ за 5 минут (Gemini + Claude)

Большинство разработчиков React не понимают универсальные компоненты

Большинство разработчиков React не понимают универсальные компоненты

В TypeScript константные типы передаются с помощью 'as const'.

В TypeScript константные типы передаются с помощью 'as const'.

Learn Advanced TypeScript In 25 Minutes (infer, extends, ternaries)

Learn Advanced TypeScript In 25 Minutes (infer, extends, ternaries)

Почему Собаки Вдруг ЗАЛЕЗАЮТ На Вас? (Причина шокирует)

Почему Собаки Вдруг ЗАЛЕЗАЮТ На Вас? (Причина шокирует)

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Путин перестал говорить о войне | Что случилось (English subtitles)

Путин перестал говорить о войне | Что случилось (English subtitles)

Путин принял решение о вторжении / Резкое заявление президента

Путин принял решение о вторжении / Резкое заявление президента

Я Построил Молот Высокого Давления

Я Построил Молот Высокого Давления

Гренландия: остров китов, нищеты и алкоголизма | Интервью с местными, снег, лед и хаски

Гренландия: остров китов, нищеты и алкоголизма | Интервью с местными, снег, лед и хаски

The TypeScript Course for JS Devs

The TypeScript Course for JS Devs

Задача про надёжный пароль | В интернете опять кто-то неправ #035 | Борис Трушин и Математик Андрей

Задача про надёжный пароль | В интернете опять кто-то неправ #035 | Борис Трушин и Математик Андрей

Илон Маск ПОДСТАВИЛ Всех! Афера с ИИ Дата Центрами В Космосе. Скандал с Grok. Крупный Шаг OpenAI.

Илон Маск ПОДСТАВИЛ Всех! Афера с ИИ Дата Центрами В Космосе. Скандал с Grok. Крупный Шаг OpenAI.

Practical TypeScript – Course for Beginners

Practical TypeScript – Course for Beginners

Вспомогательные типы TypeScript... Молниеносно быстрые

Вспомогательные типы TypeScript... Молниеносно быстрые

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com