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

Что такое Generic

В TypeScript Generic (обобщения) позволяют создавать компоненты, которые работают с множеством типов, вместо одного. Это делается с использованием параметров типов. Вот примеры использования обобщений для функции, класса и интерфейса.

Generic Функция

Обобщённая функция принимает параметр типа и работает с ним:

function identity<T>(arg: T): T {
    return arg;
}

// Пример использования:
let output1 = identity<string>("Hello"); // Вывод: "Hello"
let output2 = identity<number>(42);       // Вывод: 42

В этом примере T является параметром типа, который определяет тип аргумента и возвращаемого значения функции identity.

Кратко, <T> в TypeScript означает параметр типа. Это способ сделать код обобщённым, чтобы он мог работать с различными типами данных. Внутри обобщённого кода T действует как placeholder для любого типа, который будет указан при использовании этого кода.

Generic Класс

Обобщённый класс может работать с различными типами данных:

class GenericNumber<T> {
    zeroValue: T;
    add: (x: T, y: T) => T;

    constructor(zeroValue: T, addFunction: (x: T, y: T) => T) {
        this.zeroValue = zeroValue;
        this.add = addFunction;
    }
}

// Пример использования:
let myGenericNumber = new GenericNumber<number>(0, (x, y) => x + y);
console.log(myGenericNumber.add(5, 10)); // Вывод: 15

В этом примере T позволяет классу GenericNumber быть параметризованным любым типом данных, таким как number, string, и т.д.

Generic Интерфейс

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

interface GenericIdentityFn<T> {
    (arg: T): T;
}

function identityFunction<T>(arg: T): T {
    return arg;
}

let myIdentity: GenericIdentityFn<number> = identityFunction;
console.log(myIdentity(10)); // Вывод: 10

В этом примере интерфейс GenericIdentityFn определяет обобщённую функцию, которая принимает и возвращает значение одного и того же типа T.

Станьте востребованным фронтенд-разработчиком за 10 месяцев, освоив HTML, CSS, JavaScript, React, и другие современные технологии. За время обучения вы создадите 9 проектов и решите 500+ задач, моделируя реальные рабочие условия. Программа обновляется каждые 6 месяцев, а после завершения курса вы получите помощь с трудоустройством и диплом о профессиональной переподготовке.

Комментарии

0

Без регистрации и смс