От автора: временами у нас возникает необходимость хранить набор значений различных типов. Этой цели массивы послужить не смогут. В TypeScript tuple — это тип данных под названием кортежи, которые помогают решить эту задачу.
Они представляют набор разнородных значений. Другими словами, кортежи обеспечивают хранение множественных полей различных типов. Кортежи могут быт также переданы функциям в качестве параметров.
Синтаксис
1 |
var tuple_name = [value1,value2,value3,…value n] |
Для примера
1 |
var mytuple = [10,"Hello"]; |
Вы можете объявить в Typescript пустой кортеж и инициализировать его позже.
1 2 3 |
var mytuple = []; mytuple[0] = 120 mytuple[1] = 234 |
Доступ к значениям в кортежах
Отдельно взятые значения кортежа называются элементами. Кортежи основываются на индексе. Это значит, что получить доступ к элементам в кортеже можно, используя их соответствующий числовой индекс. Индекс элемента в кортеже начинается с нуля и увеличивается до n-1 (где n — это размер кортежа).
Синтаксис
1 |
tuple_name[index] |
Пример: Простой кортеж
1 2 3 |
var mytuple = [10,"Hello"]; //create a tuple console.log(mytuple[0]) console.log(mytuple[1]) |
В вышеприведённои примере объявляется кортеж mytuple. Этот кортеж содержит значения числового и строчного типов данных соответственно. После компиляции, мы получим тот же код JavaScript. Результат выглядит следующим образом:
1 2 |
10 Hello |
Пример: Пустой кортеж
1 2 3 4 5 6 |
var tup = [] tup[0] = 12 tup[1] = 23 console.log(tup[0]) console.log(tup[1]) |
После компиляции, мы получим тот же код JavaScript. Результат выглядит следующим образом:
1 2 |
12 23 |
Операции с кортежами
Кортежи в TypeScript поддерживают различные операции, например, отправку нового элемента, удаление элемента из кортежа и другие. Пример
1 2 3 4 5 6 7 8 9 |
var mytuple = [10,"Hello","World","typeScript"]; console.log("Items before push "+mytuple.length) // возвращает размер кортежа mytuple.push(12) // добавляет кортежу значение console.log("Items after push "+mytuple.length) console.log("Items before pop "+mytuple.length) console.log(mytuple.pop()+" popped from the tuple") // удаляет и возвращает последний элемент console.log("Items after pop "+mytuple.length) |
push() добавляет элемент в кортеж
pop() удаляет из кортежа и возвращает последнее значение
После компиляции, мы получим тот же код JavaScript. Результат выглядит следующим образом:
1 2 3 4 5 |
Items before push 4 Items after push 5 Items before pop 5 12 popped from the tuple Items after pop 4 |
Модификация кортежей
Кортежи являются модифицируемыми, то есть мы можем их оптимизировать или изменять значения элементов кортежа. Пример
1 2 3 4 5 6 |
var mytuple = [10,"Hello","World","typeScript"]; //создание кортежа console.log("Tuple value at index 0 "+mytuple[0]) //модификация элемента кортежа mytuple[0] = 121 console.log("Tuple value at index 0 changed to "+mytuple[0]) |
После компиляции, мы получим тот же код JavaScript. Результат выглядит следующим образом:
1 2 |
Tuple value at index 0 10 Tuple value at index 0 changed to 121 |
Деструктуризация кортежа
Деструктуризация означает разрушение структуры элемента. TypeScript поддерживает деструктуризацию, если речь идёт о кортежах. Пример
1 2 3 4 |
var a =[10,"hello"] var [b,c] = a console.log( b ) console.log( c ) |
После компиляции мы получим следующий JavaScript код:
1 2 3 4 5 |
//Сгенерировано посредством typescript 1.8.10 var a = [10, "hello"]; var b = a[0], c = a[1]; console.log(b); console.log(c); |
Результат выглядит следующим образом:
1 2 |
10 hello |
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.