Ответ
Кортеж (tuple) — это неизменяемый (immutable) упорядоченный список элементов в JavaScript (или TypeScript). В отличие от массивов, кортежи фиксируют типы элементов на определённых позициях.
Пример в TypeScript:
let user: [string, number, boolean] = ['John', 30, true];
// user[0] - строка, user[1] - число, user[2] - булево
Особенности:
- Фиксированная длина (опционально)
- Строгая типизация позиций
- Неизменяемость после создания
- Часто используются для возврата нескольких значений из функции
В JavaScript кортежи эмулируются через массивы, но без контроля типов.
Ответ 18+ 🔞
А, ну это про кортежи, да? Вот эта штука, где ты как бы массив делаешь, но такой... зашоренный, блядь. Представь: ты пытаешься запихнуть в одну коробку и ботинок, и селёдку, и паяльник. Массив скажет: "Да похуй, клади, чё хочешь". А кортеж — это такой блюститель порядка, ёпта. Он тебе сразу: "Нет, мудила, на первую полку — только строки, на вторую — цифры, а на третью — булевы флаги. И не еби мозг!"
Вот смотри, как в TypeScript это выглядит, чистая магия, блядь:
let user: [string, number, boolean] = ['John', 30, true];
// user[0] - строка, user[1] - число, user[2] - булево
Видишь? Объявили коробку user. И сразу приказали: "Первый слот — string, второй — number, третий — boolean". И попробуй сунь туда что-то не то — компилятор тебе такую пиздюлину влепит, ядрёна вошь! Скажет: "Идиот, я ждал число, а ты мне 'пиздец' подсовываешь?!"
А главная их фишка — это неизменяемость, ну, immutable, как умные говорят. Создал — и всё, пиздец. Нельзя потом взять и сказать: "А давайте-ка на второе место теперь массив объектов засунем". Не, хуй там, чувак. Типы на своих местах намертво зафиксированы, как гвоздями прибиты. Часто их используют, когда из функции надо вернуть не просто одну хуйню, а несколько, но чтоб каждый элемент — со своим, чётко определённым, типом. Не то что "ой, а чё там вернулось-то, хз".
В чистом JavaScript, конечно, это всё — пиздёж и показуха. Там кортеж — это просто массив, и ты можешь в него запихнуть что угодно: хоть строку, хоть функцию, хоть свою совесть, если она у тебя осталась. Контроля типов — ноль ебать. Но в TypeScript за этим следят, как суровый надзиратель, блядь. Так что если хочешь порядка — юзай кортежи, а хочешь бардак и анархию — обычные массивы, дело твоё.