Как определить массив различных универсальных типов в TypeScript?

Опубликовано: 26 Августа, 2022

В машинописном тексте массив — это тип данных, который может последовательно хранить несколько значений разных типов данных. Подобно 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]);
}