Как определить массив различных универсальных типов в TypeScript?
В машинописном тексте массив — это тип данных, который может последовательно хранить несколько значений разных типов данных. Подобно JavaScript, Typescript поддерживает объявление массива, и есть несколько способов сделать это.
Объявление и инициализация массивов:
- Мы можем использовать var или let для объявления массива.
- Разница в том, что var используется, если мы хотим, чтобы переменная отражалась/реализовывалась во всей программе и позволяла для определенного блока.
- Ниже приведен синтаксис
Способ 1: Объявление и инициализация в отдельной строке. Здесь мы объявляем массив и инициализируем его в отдельных строках, как в примере, приведенном ниже. Часто он используется для создания более чистого и читаемого кода. Мы используем квадратную скобку, если мы уже знаем тип массива, и скобки со стрелкой, если мы используем универсальный (не ограничивается одним типом данных).
var Arrayname[:datatype]; // Declaration
Arrayname = [val1,val2,val3,valn..] // Initialization
Здесь мы объявляем массив цифр с общим типом, числом, поэтому первая цифра 23 указывает тип массива (число). Если мы не объявляем тип массива, он классифицируется как любой.
Javascript
var fruits: Array<string>; fruits = [ "Kiwi" , "Plums" , "Peaches" , "Apples" , "Lime" , "Cherries" ]; var Digits: Array<number>; Digits = [23, 34, 100, 124,]; |
Способ 2: объявление и инициализация в одной строке: альтернатива объявлению и инициализации массива в одной строке.
Пример:
Javascript
/* First method of usual array with square brackets and second method of generic arrays for examples fruits and Digits */ var fruits: string[] = [ "Kiwi" , "Plums" , "Peaches" , "Apples" , "Lime" , "Cherries" ]; var fruits: Array < String >= [ "Kiwi" , "Plums" , "Peaches" , "Apples" , "Lime" , "Cherries" ]; var Digits: number[] = [23, 34, 100, 124]; var Digits: Array < number >= [23, 34, 100, 124] |
Обратите внимание, что разница между первым и вторым методами заключается исключительно в более чистом коде.
Объявление массива MultiType: типы разделяются символом «|» для каждого типа и каждый соответствует предыдущему элементу. В приведенном ниже примере столицы стран объединены в пары (Таиланд для Бангкока, Нью-Дели для Индии), а во втором примере у нас нет строки для числа 5, что означает, что оно независимо и занимает место только как и другие элементы.
Javascript
/* In the first example we"re associating string with string and second example vivek has 2 values 3 and 5, as we can have multiple values */ var Capital: (string | string)[] = ["USA ", " Washington D.C. ", " United Kingdom ", " London ", " India ", " New Delhi ", " Thailand ", " Bangkok " ]; // or var Employees: Array < string | number > = [" Atul ", 1, " Vivek ", 3, 5, " Sania", 8]; |
Доступ к элементам массива:
Метод 1: доступ к индексу (прямой доступ): прямой доступ возможен, когда мы знаем индекс и размер массива. В приведенном выше примере мы знаем, что «Темный» занимает 1 индекс, поэтому мы «Шоколад» [1], он возвращает белый. Однако это утомительно, если длина массива слишком велика, поэтому мы используем второй метод (зацикливание).
Javascript
var Chocolates: string[] = [ "White" , "Dark" , "SemiSweet" , "BitterSweet" ]; Chocolates[0]; // Returns White Chocolates[1]; // Returns Dark Chocolates[2]; // Returns SemiSweet Chocolates[3]; // Returns BitterSweet Chcoloates[4]; // Returns undefined |
Способ 2. Использование цикла. При большом размере массива вместо прямого доступа можно использовать цикл, чтобы уменьшить количество строк кода и сделать его более чистым. В приведенном ниже примере мы используем цикл for для анализа массива городов и выводим его соответствующим образом.
В качестве альтернативы, если мы не знаем размер массива, мы используем «внутри» массива, чтобы напечатать то же самое.
Javascript
// Using loop for the given array let Cities: string[] = [ "Pune" , "Mumbai" , "Nagpur" ]; for ( var i = 0; i < Cities.length; i++) { // Output: Pune Mumbai Nagpur console.log(Cities[i]); } for ( var i in Cities) { // Output: Pune Mumbai Nagpur console.log(Cities[i]); } |