# generaltranslation: General Translation Core SDK: formatListToParts URL: https://generaltranslation.com/ru/docs/core/class/methods/formatting/format-list-to-parts.mdx --- title: formatListToParts description: Справочник API по методу formatListToParts для разбиения списков на части с сохранением исходных типов --- ## Обзор Метод `formatListToParts` форматирует массив в набор частей с учетом локали: между элементами вставляются строковые разделители, при этом исходные типы самих элементов сохраняются. В отличие от `formatList`, который возвращает одну строку, этот метод возвращает `Array`, поэтому он идеально подходит для массивов смешанных типов, содержащих строки, числа, объекты или JSX-элементы. ```typescript const gt = new GT({ locales: ['en'] }); const parts = gt.formatListToParts(['apple', 42, { type: 'fruit' }]); // Returns: ['apple', ', ', 42, ', and ', { type: 'fruit' }] ``` ## Справочник ### Параметры | Имя | Тип | Описание | | ---------- | ------------------------ | --------------------------------------- | | `array` | `Array` | Массив элементов для форматирования | | `options?` | `ListFormatPartsOptions` | Необязательные параметры форматирования | ### ListFormatPartsOptions Расширяет `Intl.ListFormatOptions`, добавляя возможность явно указать локаль: | Имя | Тип | Описание | | ---------- | ------------------------------------------ | -------------------------------------------------------------------------------------- | | `locales?` | `string \| string[]` | Переопределяет локали для форматирования (по умолчанию используются локали экземпляра) | | `type?` | `'conjunction' \| 'disjunction' \| 'unit'` | Тип форматирования списка (по умолчанию: `'conjunction'`) | | `style?` | `'long' \| 'short' \| 'narrow'` | Стиль форматирования списка (по умолчанию: `'long'`) | ### Возвращает `Array` - Массив исходных элементов, между которыми вставлены строковые разделители в соответствии с локалью. *** ## Примеры ### Базовое форматирование списков ```typescript copy import { GT } from 'generaltranslation'; const gt = new GT({ locales: ['en'] }); // Конъюнкция (по умолчанию) — список с «и» console.log(gt.formatListToParts(['A', 'B', 'C'])); // Вывод: ['A', ', ', 'B', ', and ', 'C'] // Разделительный тип — список с «или» console.log(gt.formatListToParts(['A', 'B', 'C'], { type: 'disjunction' })); // Вывод: ['A', ', ', 'B', ', or ', 'C'] ``` ### Массивы со смешанными типами ```typescript copy // Числа и объекты сохраняются console.log(gt.formatListToParts(['apple', 42, { type: 'fruit' }])); // Вывод: ['apple', ', ', 42, ', and ', { type: 'fruit' }] ``` ### Вариации стиля ```typescript copy // Краткий стиль console.log(gt.formatListToParts(['first', 'second'], { style: 'short' })); // Вывод: ['first', ' & ', 'second'] // Стиль единиц измерения console.log(gt.formatListToParts(['1km', '2mi'], { type: 'unit' })); // Вывод: ['1km', ', ', '2mi'] ``` ### Форматирование для конкретной локали ```typescript copy // Испанский разделительный список console.log(gt.formatListToParts(['red', 'green', 'blue'], { locales: ['es'], type: 'disjunction' })); // Вывод: ['red', ', ', 'green', ' o ', 'blue'] ``` *** ## Примечания * Исходные типы элементов сохраняются — между элементами добавляются только строковые разделители * В этом и состоит ключевое отличие от `formatList`, который возвращает обычную `строку` * Особенно полезно для рендеринга массивов со смешанными типами в UI-фреймворках, таких как React * Внутри метод использует встроенный в браузер `Intl.ListFormat` * `type: 'conjunction'` создаёт списки с «и», `'disjunction'` — разделительные списки с «или», а `'unit'` — списки в формате единиц измерения ## Следующие шаги * Ознакомьтесь с документацией [`Intl.ListFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat), чтобы узнать о других возможностях * См. [`format-num`](/docs/core/class/methods/formatting/format-num) для форматирования чисел * См. автономную функцию [`format-list-to-parts`](/docs/core/functions/formatting/format-list-to-parts), если хотите использовать её без экземпляра GT * См. [`format-message`](/docs/core/class/methods/formatting/format-message) для форматирования сообщений с интерполяцией списков