js-format
Языки
- JavaScript100%
@e22m4u/js-format
Утилита интерполяции строк для JavaScript.
- стандартные спецификаторы
,%sи%d(см.%j)util.format вывод примитивного значения или имени конструктора%vвывод элементов массива через запятую%l"foo", 10, true
Дополнительно:
- встроенный класс
с интерполяцией сообщения об ошибкеErrorf
Мотивация
При выводе сообщения об ошибке может возникнуть потребность
включения некоторых значений в строку сообщения. В этом случае
возникает проблема, когда невозможно точно определить тип
выводимого значения, так как стандартный спецификатор
одинаково обрабатывает строки, числа и другие типы.
В примере выше строка и число выводятся одинаково.
Похожая проблема возникает при выводе объектов.
Данный модуль расширяет стандартные спецификаторы дополнительным
и , которые оборачивают строки в кавычки, а для объектов
выводят имя конструктора.
Подробнее о новых спецификаторах см. в разделе Спецификаторы.
Установка
Модуль поддерживает ESM и CommonJS стандарты.
ESM
CommonJS
Спецификаторы
Метод возвращает отформатированную строку, используя
первый аргумент как printf-подобный шаблон, который может
содержать ноль или более спецификаторов. Каждый спецификатор
заменяется преобразованным значением из соответствующего
аргумента.
| specifier | description |
|---|---|
| использует для конвертации значения |
| использует для конвертации значения |
| представление значения в виде JSON |
| см. ниже |
| см. ниже |
%v
Строки оборачиваются в кавычки, остальные примитивы приводятся к строке, а для более сложных типов выводится имя конструктора.
Спецификатор проектировался для вывода значений в сообщениях
об ошибке, когда важно иметь представление об их типах. При этом,
вывод содержимого объекта может быть избыточен для такой задачи.
По этой причине, объекты приводятся к имени конструктора, что
позволяет относительно точно определить тип выводимого значения.
%l
Вывод элементов массива через запятую.
Элементы массива приводятся к строке по логике
спецификатора
Errorf
Конструктор класса передает свои аргументы
функции для формирования сообщения об ошибке.
Пример:
InvalidArgumentError
Класс является псевдонимом для , полностью наследуя его поведение.
В некоторых ситуациях может быть более осмысленным, чем базовый класс.
Тесты
Лицензия
MIT