В TypeScript дженерики предоставляют мощный способ создания повторно используемых компонентов. Когда дело доходит до массивов, дженерики позволяют нам определить тип элементов, которые может содержать массив. В этой статье мы рассмотрим различные методы использования формата универсального типа для массивов в TypeScript, а также приведем примеры кода.
- Создание универсального массива.
Чтобы создать универсальный массив, мы используем синтаксис угловых скобок<T>, гдеTпредставляет тип элементов, в которых массив будет храниться. Вот пример:
let myArray: Array<number>; // Array of numbers
myArray = [1, 2, 3, 4]; // Valid assignment
myArray.push(5); // Valid operation
myArray.push("six"); // Error: Invalid element type
- Доступ к элементам массива.
После того как у нас есть универсальный массив, мы можем получить доступ к его элементам, используя обычный синтаксис индексации массива. TypeScript обеспечивает вывод типа, поэтому тип элемента, к которому осуществляется доступ, будет выведен правильно. Вот пример:
let myArray: Array<string> = ["apple", "banana", "orange"];
let firstElement: string = myArray[0]; // Type inference: string
console.log(firstElement); // Output: "apple"
- Методы массивов и универсальные типы.
Массивы в TypeScript имеют различные встроенные методы, которые можно использовать с универсальными типами. Вот несколько примеров:
push: добавляет один или несколько элементов в конец массива.pop: удаляет и возвращает последний элемент массива.concat: объединяет два или более массива и возвращает новый массив.slice: извлекает часть массива и возвращает новый массив.map: преобразует каждый элемент массива и возвращает новый массив.
let myArray: Array<number> = [1, 2, 3];
myArray.push(4); // [1, 2, 3, 4]
let poppedElement: number = myArray.pop(); // 4
let newArray: Array<number> = myArray.concat([5, 6]); // [1, 2, 3, 5, 6]
let slicedArray: Array<number> = myArray.slice(1, 3); // [2, 3]
let mappedArray: Array<string> = myArray.map(String); // ["1", "2", "3"]
- Итерация массива и универсальные типы:
Мы можем перебирать универсальный массив, используя циклы или функции более высокого порядка, такие какforEach,filter,reduceи т. д. Вот пример использования методаforEach:
let myArray: Array<number> = [1, 2, 3];
myArray.forEach((element: number) => {
console.log(element); // Output: 1, 2, 3
});
Использование формата универсального типа для массивов в TypeScript позволяет нам создавать типобезопасный и повторно используемый код. Мы рассмотрели создание универсальных массивов, доступ к элементам массива, использование методов массива и перебор массивов. Используя дженерики, мы можем писать более надежный и удобный в обслуживании код TypeScript.