Утилита интерполяции строк для JavaScript
|
|
1 год назад | |
|---|---|---|
| .husky | 1 год назад | |
| src | 1 год назад | |
| .c8rc | 2 лет назад | |
| .commitlintrc | 2 лет назад | |
| .editorconfig | 2 лет назад | |
| .gitignore | 1 год назад | |
| .mocharc.cjs | 1 год назад | |
| .prettierrc | 2 лет назад | |
| LICENSE | 1 год назад | |
| README-ru.md | 1 год назад | |
| README.md | 1 год назад | |
| eslint.config.js | 1 год назад | |
| package.json | 1 год назад | |
| tsconfig.json | 2 лет назад |
English | Русский
Утилита интерполяции строк для JavaScript.
%s, %d и
%j (см. util.format)%v вывод примитивного значения или имени
конструктора%l вывод элементов массива через запятую
"foo", 10, trueДополнительно:
Errorf с интерполяцией сообщения об
ошибкеnpm install @e22m4u/js-format
Для загрузки ES-модуля требуется установить
"type": "module" в файле package.json, или
использовать .mjs расширение.
Es-импорт
import {format} from '@e22m4u/js-format';
Строки оборачиваются в кавычки, остальные примитивы приводятся к строке, а для более сложных типов выводится имя конструктора.
format('It is %v', 'foo'); // It is "foo"
format('It is %v', ''); // It is ""
format('It is %v', 10); // It is 10
format('It is %v', 0); // It is 0
format('It is %v', NaN); // It is NaN
format('It is %v', Infinity); // It is Infinity
format('It is %v', true); // It is true
format('It is %v', false); // It is false
format('It is %v', {foo: 'bar'}); // It is Object
format('It is %v', new Date()); // It is Date
format('It is %v', new Map()); // It is Map
format('It is %v', () => 10); // It is Function
format('It is %v', undefined); // It is undefined
format('It is %v', null); // It is null
Спецификатор %v проектировался для вывода значений в
сообщениях об ошибке, когда важно иметь представление об их типах. При
этом, вывод содержимого объекта может быть избыточен для такой задачи.
По этой причине, объекты приводятся к имени конструктора, что позволяет
относительно точно определить тип выводимого значения.
class MyClass {}
format('It is %v', 'MyClass'); // It is "MyClass"
format('It is %v', MyClass); // It is MyClass
format('It is %v', new MyClass()); // It is MyClass (instance)
Вывод элементов массива через запятую.
format('An array of %l', ['foo', 10, true]);
// An array of "foo", 10, true
Элементы массива приводятся к строке по логике спецификатора
%v
Конструктор класса Errorf передает аргументы функции
format для формирования сообщения об ошибке.
Пример:
import {Errorf} from '@e22m4u/js-format';
throw new Errorf(
'It requires one of %l, but %v given.',
[true, false, 'y', 'n'],
new Map(),
);
// Error: It requires one of true, false, "y", "n", but Map given.
npm run test
MIT