util
Модуль node:util поддерживает потребности внутренних API Node.js. Многие утилиты также полезны разработчикам приложений и модулей. Чтобы получить к нему доступ:
import util from 'node:util';
Использование в Deno
import * as mod from "node:util";
класс MIMEParams
Использование в Deno
import { MIMEParams } from "node:util";
В настоящее время этот символ не поддерживается.
API MIMEParams предоставляет доступ на чтение и запись параметров MIMEType.
Методы
[Symbol.iterator](): Iterator<[string, string]> Возвращает итератор по всем парам «имя — значение» в параметрах.
delete(name: string): void Удаляет все пары «имя — значение», имя которых равно name.
entries(): Iterator<[string, string]> Возвращает итератор по всем парам «имя — значение» в параметрах. Каждый элемент итератора — это JavaScript Array. Первый элемент массива — name, второй элемент массива — value.
get(name: string): string | null Возвращает значение первой пары «имя — значение», имя которой равно name. Если таких пар нет, возвращается null.
has(name: string): boolean Возвращает true, если существует хотя бы одна пара «имя — значение», имя которой равно name.
keys(): Iterator<string> Возвращает итератор по именам всех пар «имя — значение».
import { MIMEType } from 'node:util';
const { params } = new MIMEType('text/plain;foo=0;bar=1');
for (const name of params.keys()) {
console.log(name);
}
// Prints:
// foo
// bar
set(
name: string,
value: string,
): void Устанавливает значение value для name в объекте MIMEParams. Если уже существуют пары «имя — значение» с именами name, значение первой такой пары устанавливается равным value.
import { MIMEType } from 'node:util';
const { params } = new MIMEType('text/plain;foo=0;bar=1');
params.set('foo', 'def');
params.set('baz', 'xyz');
console.log(params.toString());
// Prints: foo=def;bar=1;baz=xyz
values(): Iterator<string> Возвращает итератор по значениям всех пар «имя — значение».
класс MIMEType
Использование в Deno
import { MIMEType } from "node:util";
В настоящее время этот символ не поддерживается.
Реализация класса MIMEType.
В соответствии с соглашениями браузеров все свойства объектов MIMEType реализованы как геттеры и сеттеры в прототипе класса, а не как свойства данных непосредственно в объекте.
MIME-строка — это структурированная строка, содержащая несколько значимых компонентов. При разборе возвращается объект MIMEType со свойствами для каждого из этих компонентов.
Конструкторы
MIMEType(input: string | { toString: () => string; }) Создает объект MIMEType, разбирая входные данные.
Если input не является допустимым MIME, будет выброшено исключение TypeError. Обратите внимание: предпринимается попытка преобразовать переданные значения в строки.
Свойства
essence: string Возвращает сущность MIME. Это свойство доступно только для чтения. Используйте mime.type или mime.subtype, чтобы изменить MIME.
import { MIMEType } from 'node:util';
const myMIME = new MIMEType('text/javascript;key=value');
console.log(myMIME.essence);
// Prints: text/javascript
myMIME.type = 'application';
console.log(myMIME.essence);
// Prints: application/javascript
console.log(String(myMIME));
// Prints: application/javascript;key=value
params: MIMEParams Возвращает объект MIMEParams, представляющий параметры MIME. Это свойство доступно только для чтения. Подробности см. в документации MIMEParams.
subtype: string Возвращает и задает часть MIME, содержащую подтип.
import { MIMEType } from 'node:util';
const myMIME = new MIMEType('text/ecmascript');
console.log(myMIME.subtype);
// Prints: ecmascript
myMIME.subtype = 'javascript';
console.log(myMIME.subtype);
// Prints: javascript
console.log(String(myMIME));
// Prints: text/javascript
type: string Возвращает и задает часть MIME, содержащую тип.
import { MIMEType } from 'node:util';
const myMIME = new MIMEType('text/javascript');
console.log(myMIME.type);
// Prints: text
myMIME.type = 'application';
console.log(myMIME.type);
// Prints: application
console.log(String(myMIME));
// Prints: application/javascript
Методы
toString(): string Метод toString() объекта MIMEType возвращает сериализованное представление MIME.
Из-за необходимости соответствовать стандарту этот метод не позволяет пользователям настраивать процесс сериализации MIME.
класс TextDecoder
Использование в Deno
import { TextDecoder } from "node:util";
Реализация API TextDecoder стандарта кодирования WHATWG.
const decoder = new TextDecoder();
const u8arr = new Uint8Array([72, 101, 108, 108, 111]);
console.log(decoder.decode(u8arr)); // Hello
Конструкторы
TextDecoder(
encoding?: string,
options?: { fatal?: boolean | undefined; ignoreBOM?: boolean | undefined; },
) Свойства
encoding: string Кодировка, поддерживаемая экземпляром TextDecoder.
fatal: boolean Значение будет true, если ошибки декодирования приведут к выбрасыванию TypeError.
ignoreBOM: boolean Значение будет true, если результат декодирования будет содержать метку порядка байтов.
Методы
decode(
input?:
ArrayBufferView
| ArrayBuffer
| null
,
options?: { stream?: boolean | undefined; },
): string Декодирует input и возвращает строку. Если options.stream равно true, неполные последовательности байтов в конце input буферизуются и выдаются при следующем вызове textDecoder.decode().
Если textDecoder.fatal равно true, возникающие ошибки декодирования приведут к выбрасыванию TypeError.
переменная TextDecoder
Класс TextDecoder является глобальной ссылкой на import { TextDecoder } from 'node:util' https://nodejs.org/api/globals.html#textdecoder
Тип
globalThis extends { onmessage: any; TextDecoder: infer TextDecoder; } ? TextDecoder : _TextDecoder класс TextEncoder
Использование в Deno
import { TextEncoder } from "node:util";
Реализация API TextEncoder стандарта кодирования WHATWG. Все экземпляры TextEncoder поддерживают только кодировку UTF-8.
const encoder = new TextEncoder();
const uint8array = encoder.encode('this is some data');
Класс TextEncoder также доступен в глобальном объекте.
Свойства
encoding: string Кодировка, поддерживаемая экземпляром TextEncoder. Всегда имеет значение 'utf-8'.
Методы
encode(input?: string): Uint8Array Кодирует строку input в UTF-8 и возвращает Uint8Array с закодированными байтами.
encodeInto(
src: string,
dest: Uint8Array,
): EncodeIntoResult Кодирует строку src в UTF-8 и записывает результат в Uint8Array dest, а затем возвращает объект с количеством прочитанных кодовых единиц Unicode и записанных байтов UTF-8.
const encoder = new TextEncoder();
const src = 'this is some data';
const dest = new Uint8Array(10);
const { read, written } = encoder.encodeInto(src, dest);
переменная TextEncoder
Класс TextEncoder является глобальной ссылкой на import { TextEncoder } from 'node:util' https://nodejs.org/api/globals.html#textencoder
Тип
globalThis extends { onmessage: any; TextEncoder: infer TextEncoder; } ? TextEncoder : _TextEncoder функция aborted
Использование в Deno
import { aborted } from "node:util";
aborted(
signal: AbortSignal,
resource: any,
): Promise<void>Отслеживает событие прерывания для переданного signal и возвращает промис, который выполняется, когда операция signal прерывается. Если передан resource, он слабо ссылается на связанный с операцией объект, поэтому, если resource будет удален сборщиком мусора до того, как произойдет прерывание signal, возвращенный промис останется в ожидании. Это предотвращает утечки памяти при длительных или не подлежащих отмене операциях.
import { aborted } from 'node:util';
// Obtain an object with an abortable signal, like a custom resource or operation.
const dependent = obtainSomethingAbortable();
// Pass `dependent` as the resource, indicating the promise should only resolve
// if `dependent` is still in memory when the signal is aborted.
aborted(dependent.signal, dependent).then(() => {
// This code runs when `dependent` is aborted.
console.log('Dependent resource was aborted.');
});
// Simulate an event that triggers the abort.
dependent.on('event', () => {
dependent.abort(); // This will cause the `aborted` promise to resolve.
});
Параметры
signal: AbortSignal resource: any Любой ненулевой объект, связанный с прерываемой операцией и удерживаемый слабо. Если resource будет удален сборщиком мусора до того, как произойдет прерывание signal, промис останется в ожидании, позволяя Node.js прекратить его отслеживание. Это помогает предотвращать утечки памяти при длительных или не подлежащих отмене операциях.
Тип возвращаемого значения
Promise<void> функция callbackify
Использование в Deno
import { callbackify } from "node:util";
Перегрузка 1
callbackify(fn: () => Promise<void>): (callback: (err: ErrnoException) => void) => voidПринимает функцию async (или функцию, возвращающую Promise) и возвращает функцию, соответствующую стилю обратного вызова с передачей ошибки первым аргументом, то есть принимающую обратный вызов (err, value) => ... в качестве последнего аргумента. В обратном вызове первым аргументом будет причина отклонения (или null, если Promise выполнен успешно), а вторым аргументом — разрешённое значение.
import util from 'node:util';
async function fn() {
return 'hello world';
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
if (err) throw err;
console.log(ret);
});
Будет выведено:
hello world
Обратный вызов выполняется асинхронно, и его трассировка стека будет ограничена. Если обратный вызов вызывает исключение, процесс сгенерирует событие 'uncaughtException' и завершится, если это событие не будет обработано.
Поскольку null имеет особое значение в качестве первого аргумента обратного вызова, если обёрнутая функция отклоняет Promise с ложным значением в качестве причины, это значение помещается в Error, а исходное значение сохраняется в поле с именем reason.
function fn() {
return Promise.reject(null);
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
// When the Promise was rejected with `null` it is wrapped with an Error and
// the original value is stored in `reason`.
err && Object.hasOwn(err, 'reason') && err.reason === null; // true
});
Параметры
fn: () => Promise<void> Функция async
Тип возвращаемого значения
(callback: (err: ErrnoException) => void) => void функция в стиле обратного вызова
Перегрузка 2
callbackify<TResult>(fn: () => Promise<TResult>): (callback: (
err: ErrnoException,
result: TResult,
) => void) => void
Перегрузка 3
callbackify<T1>(fn: (arg1: T1) => Promise<void>): (
arg1: T1,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 4
callbackify<
T1,
TResult,
>(fn: (arg1: T1) => Promise<TResult>): (
arg1: T1,
callback: (
err: ErrnoException,
result: TResult,
) => void,
) => void
Перегрузка 5
callbackify<
T1,
T2,
>(fn: (
arg1: T1,
arg2: T2,
) => Promise<void>): (
arg1: T1,
arg2: T2,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 6
callbackify<
T1,
T2,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
) => Promise<TResult>): (
arg1: T1,
arg2: T2,
callback: (
err: ErrnoException | null,
result: TResult,
) => void,
) => void
Перегрузка 7
callbackify<
T1,
T2,
T3,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 8
callbackify<
T1,
T2,
T3,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>): (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: ErrnoException | null,
result: TResult,
) => void,
) => void
Перегрузка 9
callbackify<
T1,
T2,
T3,
T4,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 10
callbackify<
T1,
T2,
T3,
T4,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: ErrnoException | null,
result: TResult,
) => void,
) => void
Перегрузка 11
callbackify<
T1,
T2,
T3,
T4,
T5,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 12
callbackify<
T1,
T2,
T3,
T4,
T5,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: ErrnoException | null,
result: TResult,
) => void,
) => void
Перегрузка 13
callbackify<
T1,
T2,
T3,
T4,
T5,
T6,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<void>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (err: ErrnoException) => void,
) => void
Перегрузка 14
callbackify<
T1,
T2,
T3,
T4,
T5,
T6,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
) => Promise<TResult>): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
arg6: T6,
callback: (
err: ErrnoException | null,
result: TResult,
) => void,
) => voidПараметры типа
T1 T2 T3 T4 T5 T6 TResult Параметры
Тип возвращаемого значения
функция debuglog
Использование в Deno
import { debuglog } from "node:util";
debuglog(
section: string,
callback?: (fn: DebugLoggerFunction) => void,
): DebugLoggerМетод util.debuglog() используется для создания функции, которая условно записывает отладочные сообщения в stderr в зависимости от наличия переменной среды NODE_DEBUG. Если имя section указано в значении этой переменной среды, возвращённая функция работает аналогично console.error(). В противном случае возвращённая функция ничего не делает.
import util from 'node:util';
const debuglog = util.debuglog('foo');
debuglog('hello from foo [%d]', 123);
Если запустить эту программу с NODE_DEBUG=foo в среде, она выведет примерно следующее:
FOO 3245: hello from foo [123]
где 3245 — это идентификатор процесса. Если запустить программу без заданной переменной среды, ничего выведено не будет.
В section также поддерживаются подстановочные знаки:
import util from 'node:util';
const debuglog = util.debuglog('foo-bar');
debuglog('hi there, it\'s foo-bar [%d]', 2333);
если запустить программу с NODE_DEBUG=foo* в среде, она выведет примерно следующее:
FOO-BAR 3257: hi there, it's foo-bar [2333]
В переменной среды NODE_DEBUG можно указать несколько имён section, разделённых запятыми: NODE_DEBUG=fs,net,tls.
Необязательный аргумент callback можно использовать, чтобы заменить функцию журналирования другой функцией без инициализации и ненужной обёртки.
import util from 'node:util';
let debuglog = util.debuglog('internals', (debug) => {
// Replace with a logging function that optimizes out
// testing if the section is enabled
debuglog = debug;
});
Параметры
section: string Строка, указывающая часть приложения, для которой создаётся функция debuglog.
callback: (fn: DebugLoggerFunction) => void Обратный вызов, вызываемый при первом обращении к функции журналирования с аргументом-функцией, представляющей собой более оптимизированную функцию журналирования.
Тип возвращаемого значения
Функция журналирования
функция deprecate
Использование в Deno
import { deprecate } from "node:util";
deprecate<T extends Function>(
fn: T,
msg: string,
code?: string,
): TМетод util.deprecate() оборачивает fn (которым может быть функция или класс) таким образом, чтобы пометить его как устаревший.
import util from 'node:util';
exports.obsoleteFunction = util.deprecate(() => {
// Do something here.
}, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.');
При вызове util.deprecate() возвращает функцию, которая генерирует DeprecationWarning с помощью события 'warning'. Предупреждение будет сгенерировано и выведено в stderr при первом вызове возвращённой функции. После этого обёрнутая функция вызывается без предупреждения.
Если при нескольких вызовах util.deprecate() передаётся одно и то же необязательное значение code, предупреждение будет сгенерировано для этого code только один раз.
import util from 'node:util';
const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001');
const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001');
fn1(); // Emits a deprecation warning with code DEP0001
fn2(); // Does not emit a deprecation warning because it has the same code
Если используются флаги командной строки --no-deprecation или --no-warnings либо свойству process.noDeprecation присвоено значение true до первого предупреждения об устаревании, метод util.deprecate() ничего не делает.
Если заданы флаги командной строки --trace-deprecation или --trace-warnings либо свойству process.traceDeprecation присвоено значение true, при первом вызове устаревшей функции предупреждение и трассировка стека выводятся в stderr.
Если задан флаг командной строки --throw-deprecation или свойству process.throwDeprecation присвоено значение true, при вызове устаревшей функции будет выброшено исключение.
Флаг командной строки --throw-deprecation и свойство process.throwDeprecation имеют приоритет над --trace-deprecation и process.traceDeprecation.
Параметры типа
T extends Function Параметры
fn: T Функция, помечаемая как устаревшая.
msg: string Предупреждение, отображаемое при вызове устаревшей функции.
code: string Код устаревания. Список кодов см. в list of deprecated APIs.
Тип возвращаемого значения
Устаревшая функция, обёрнутая для генерации предупреждения.
функция format
Использование в Deno
import { format } from "node:util";
format(
format?: any,
...param: any[],
): stringМетод util.format() возвращает отформатированную строку, используя первый аргумент в качестве строки формата, подобной printf, которая может содержать ноль или более спецификаторов формата. Каждый спецификатор заменяется преобразованным значением из соответствующего аргумента. Поддерживаются следующие спецификаторы:
Если для спецификатора нет соответствующего аргумента, он не заменяется:
util.format('%s:%s', 'foo');
// Returns: 'foo:%s'
Значения, не являющиеся частью строки формата, форматируются с помощью util.inspect(), если их тип не string.
Если методу util.format() передано больше аргументов, чем имеется спецификаторов, лишние аргументы объединяются с возвращаемой строкой через пробелы:
util.format('%s:%s', 'foo', 'bar', 'baz');
// Returns: 'foo:bar baz'
Если первый аргумент не содержит допустимого спецификатора формата, util.format() возвращает строку, составленную из всех аргументов, разделённых пробелами:
util.format(1, 2, 3);
// Returns: '1 2 3'
Если передан только один аргумент, util.format() возвращает его без изменений, не выполняя форматирование:
util.format('%% %s');
// Returns: '%% %s'
util.format() — синхронный метод, предназначенный для отладки. Обработка некоторых входных значений может значительно снижать производительность и блокировать цикл событий. Используйте эту функцию с осторожностью и никогда не вызывайте её в критически важном для производительности коде.
Параметры
format: any Строка формата, подобная printf.
...param: any[] Тип возвращаемого значения
string функция formatWithOptions
Использование в Deno
import { formatWithOptions } from "node:util";
formatWithOptions(): stringЭта функция идентична format, за исключением того, что принимает аргумент inspectOptions, задающий параметры, передаваемые в inspect.
util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 });
// Returns 'See object { foo: 42 }', where `42` is colored as a number
// when printed to a terminal.
Параметры
Тип возвращаемого значения
string функция getCallSites
Использование в Deno
import { getCallSites } from "node:util";
Перегрузка 1
getCallSites(
frameCount?: number,
options?: GetCallSitesOptions,
): CallSiteObject[]Возвращает массив объектов call site, содержащих стек вызывающей функции.
const util = require('node:util');
function exampleFunction() {
const callSites = util.getCallSites();
console.log('Call Sites:');
callSites.forEach((callSite, index) => {
console.log(`CallSite ${index + 1}:`);
console.log(`Function Name: ${callSite.functionName}`);
console.log(`Script Name: ${callSite.scriptName}`);
console.log(`Line Number: ${callSite.lineNumber}`);
console.log(`Column Number: ${callSite.column}`);
});
// CallSite 1:
// Function Name: exampleFunction
// Script Name: /home/example.js
// Line Number: 5
// Column Number: 26
// CallSite 2:
// Function Name: anotherFunction
// Script Name: /home/example.js
// Line Number: 22
// Column Number: 3
// ...
}
// A function to simulate another stack layer
function anotherFunction() {
exampleFunction();
}
anotherFunction();
Исходные местоположения можно восстановить, установив для параметра sourceMap значение true. Если карта исходного кода недоступна, исходное местоположение будет совпадать с текущим. Если включён флаг --enable-source-maps, например при использовании --experimental-transform-types, значение sourceMap по умолчанию будет равно true.
import util from 'node:util';
interface Foo {
foo: string;
}
const callSites = util.getCallSites({ sourceMap: true });
// With sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 7
// Column Number: 26
// Without sourceMap:
// Function Name: ''
// Script Name: example.js
// Line Number: 2
// Column Number: 26
Параметры
frameCount: number Количество кадров, которые нужно захватить в виде объектов call site. По умолчанию: 10. Допустимый диапазон — от 1 до 200.
options: GetCallSitesOptions Тип возвращаемого значения
Массив объектов call site
Перегрузка 2
getCallSites(options: GetCallSitesOptions): CallSiteObject[]Параметры
options: GetCallSitesOptions Тип возвращаемого значения
функция getSystemErrorMap
Использование в Deno
import { getSystemErrorMap } from "node:util";
getSystemErrorMap(): Map<number, [string, string]>В настоящее время этот символ не поддерживается.
Возвращает Map всех системных кодов ошибок, доступных в API Node.js. Соответствие между кодами и именами ошибок зависит от платформы. См. Common System Errors, где приведены имена распространённых ошибок.
fs.access('file/that/does/not/exist', (err) => {
const errorMap = util.getSystemErrorMap();
const name = errorMap.get(err.errno);
console.error(name); // ENOENT
});
Тип возвращаемого значения
Map<number, [string, string]> функция getSystemErrorMessage
Использование в Deno
import { getSystemErrorMessage } from "node:util";
getSystemErrorMessage(err: number): stringВозвращает текстовое сообщение для числового кода ошибки, полученного из API Node.js. Соответствие между кодами ошибок и текстовыми сообщениями зависит от платформы.
fs.access('file/that/does/not/exist', (err) => {
const name = util.getSystemErrorMessage(err.errno);
console.error(name); // no such file or directory
});
Параметры
err: number Тип возвращаемого значения
string функция getSystemErrorName
Использование в Deno
import { getSystemErrorName } from "node:util";
getSystemErrorName(err: number): stringВозвращает текстовое имя для числового кода ошибки, полученного из API Node.js. Соответствие между кодами и именами ошибок зависит от платформы. См. Common System Errors, где приведены имена распространённых ошибок.
fs.access('file/that/does/not/exist', (err) => {
const name = util.getSystemErrorName(err.errno);
console.error(name); // ENOENT
});
Параметры
err: number Тип возвращаемого значения
string функция inherits
Использование в Deno
import { inherits } from "node:util";
inherits(
constructor: unknown,
superConstructor: unknown,
): voidИспользование util.inherits() не рекомендуется. Для поддержки наследования на уровне языка используйте ключевые слова ES6 class и extends. Также обратите внимание, что эти два подхода семантически несовместимы.
Наследует методы прототипа одного конструктора другим. Прототип constructor будет установлен в новый объект, созданный на основе superConstructor.
В основном эта функция добавляет проверку входных данных поверх Object.setPrototypeOf(constructor.prototype, superConstructor.prototype). Для удобства superConstructor также будет доступен через свойство constructor.super_.
import util from 'node:util';
import EventEmitter from 'node:events';
function MyStream() {
EventEmitter.call(this);
}
util.inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
this.emit('data', data);
};
const stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('It works!'); // Received data: "It works!"
Пример ES6 с использованием class и extends:
import EventEmitter from 'node:events';
class MyStream extends EventEmitter {
write(data) {
this.emit('data', data);
}
}
const stream = new MyStream();
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('With ES6');
Параметры
constructor: unknown superConstructor: unknown Тип возвращаемого значения
void функция inspect
Использование в Deno
import { inspect } from "node:util";
Перегрузка 1
inspect(
object: any,
showHidden?: boolean,
depth?: number | null,
color?: boolean,
): stringМетод util.inspect() возвращает строковое представление object, предназначенное для отладки. Вывод util.inspect может измениться в любой момент, поэтому не следует полагаться на него программно. Можно передать дополнительные параметры options, изменяющие результат. util.inspect() будет использовать имя конструктора и/или @@toStringTag для создания уникальной метки проверяемого значения.
class Foo {
get [Symbol.toStringTag]() {
return 'bar';
}
}
class Bar {}
const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } });
util.inspect(new Foo()); // 'Foo [bar] {}'
util.inspect(new Bar()); // 'Bar {}'
util.inspect(baz); // '[foo] {}'
Циклические ссылки указывают на свой якорь с помощью индекса ссылки:
import { inspect } from 'node:util';
const obj = {};
obj.a = [obj];
obj.b = {};
obj.b.inner = obj.b;
obj.b.obj = obj;
console.log(inspect(obj));
// <ref *1> {
// a: [ [Circular *1] ],
// b: <ref *2> { inner: [Circular *2], obj: [Circular *1] }
// }
В следующем примере проверяются все свойства объекта util:
import util from 'node:util';
console.log(util.inspect(util, { showHidden: true, depth: null }));
В следующем примере показано влияние параметра compact:
import util from 'node:util';
const o = {
a: [1, 2, [[
'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' +
'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.',
'test',
'foo']], 4],
b: new Map([['za', 1], ['zb', 'test']]),
};
console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 }));
// { a:
// [ 1,
// 2,
// [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line
// 'test',
// 'foo' ] ],
// 4 ],
// b: Map(2) { 'za' => 1, 'zb' => 'test' } }
// Setting `compact` to false or an integer creates more reader friendly output.
console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 }));
// {
// a: [
// 1,
// 2,
// [
// [
// 'Lorem ipsum dolor sit amet,\n' +
// 'consectetur adipiscing elit, sed do eiusmod \n' +
// 'tempor incididunt ut labore et dolore magna aliqua.',
// 'test',
// 'foo'
// ]
// ],
// 4
// ],
// b: Map(2) {
// 'za' => 1,
// 'zb' => 'test'
// }
// }
// Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a
// single line.
Параметр showHidden позволяет проверять элементы WeakMap и WeakSet. Если элементов больше, чем maxArrayLength, нет гарантии, какие именно элементы будут отображены. Это означает, что повторное получение одних и тех же элементов WeakSet может привести к разным результатам. Кроме того, элементы, на которые больше не осталось сильных ссылок, могут быть удалены сборщиком мусора в любой момент.
import { inspect } from 'node:util';
const obj = { a: 1 };
const obj2 = { b: 2 };
const weakSet = new WeakSet([obj, obj2]);
console.log(inspect(weakSet, { showHidden: true }));
// WeakSet { { a: 1 }, { b: 2 } }
Параметр sorted гарантирует, что порядок добавления свойств объекта не влияет на результат util.inspect().
import { inspect } from 'node:util';
import assert from 'node:assert';
const o1 = {
b: [2, 3, 1],
a: '`a` comes before `b`',
c: new Set([2, 3, 1]),
};
console.log(inspect(o1, { sorted: true }));
// { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } }
console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) }));
// { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' }
const o2 = {
c: new Set([2, 1, 3]),
a: '`a` comes before `b`',
b: [2, 3, 1],
};
assert.strict.equal(
inspect(o1, { sorted: true }),
inspect(o2, { sorted: true }),
);
Параметр numericSeparator добавляет подчёркивание после каждой группы из трёх цифр во всех числах.
import { inspect } from 'node:util';
const thousand = 1_000;
const million = 1_000_000;
const bigNumber = 123_456_789n;
const bigDecimal = 1_234.123_45;
console.log(inspect(thousand, { numericSeparator: true }));
// 1_000
console.log(inspect(million, { numericSeparator: true }));
// 1_000_000
console.log(inspect(bigNumber, { numericSeparator: true }));
// 123_456_789n
console.log(inspect(bigDecimal, { numericSeparator: true }));
// 1_234.123_45
util.inspect() — синхронный метод, предназначенный для отладки. Максимальная длина вывода составляет приблизительно 128 МиБ. Результаты для входных данных, дающих более длинный вывод, будут усечены.
Параметры
object: any Любой примитив JavaScript или Object.
depth: number | null color: boolean Тип возвращаемого значения
string Представление object.
Перегрузка 2
inspect(
object: any,
options?: InspectOptions,
): stringПараметры
object: any options: InspectOptions Тип возвращаемого значения
string пространство имён inspect
Переменные
Можно использовать для объявления пользовательских функций inspect.
Позволяет изменять настройки inspect в REPL.
функция isDeepStrictEqual
Использование в Deno
import { isDeepStrictEqual } from "node:util";
isDeepStrictEqual(
val1: unknown,
val2: unknown,
): booleanВозвращает true, если между val1 и val2 выполняется глубокое строгое равенство. В противном случае возвращает false.
Подробнее о глубоком строгом равенстве см. в assert.deepStrictEqual().
Параметры
val1: unknown val2: unknown Тип возвращаемого значения
boolean функция parseArgs
Использование в Deno
import { parseArgs } from "node:util";
parseArgs<T extends ParseArgsConfig>(config?: T): ParsedResults<T>Предоставляет высокоуровневый API для разбора аргументов командной строки, не требуя непосредственного взаимодействия с process.argv. Принимает спецификацию ожидаемых аргументов и возвращает структурированный объект с разобранными параметрами и позиционными аргументами.
import { parseArgs } from 'node:util';
const args = ['-f', '--bar', 'b'];
const options = {
foo: {
type: 'boolean',
short: 'f',
},
bar: {
type: 'string',
},
};
const {
values,
positionals,
} = parseArgs({ args, options });
console.log(values, positionals);
// Prints: [Object: null prototype] { foo: true, bar: 'b' } []
Параметры типа
T extends ParseArgsConfig Параметры
config: T Используется для передачи аргументов на разбор и настройки анализатора. config поддерживает следующие свойства:
Тип возвращаемого значения
Разобранные аргументы командной строки:
функция parseEnv
Использование в Deno
import { parseEnv } from "node:util";
parseEnv(content: string): objectСтабильность: 1.1 — активная разработка. Пример файла .env:
import { parseEnv } from 'node:util';
parseEnv('HELLO=world\nHELLO=oh my\n');
// Returns: { HELLO: 'oh my' }
Параметры
content: string Исходное содержимое файла .env.
Тип возвращаемого значения
object функция promisify
Использование в Deno
import { promisify } from "node:util";
Перегрузка 1
promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustomПринимает функцию, использующую распространённый стиль обратного вызова с ошибкой в первом аргументе, то есть принимающую обратный вызов (err, value) => ... последним аргументом, и возвращает её версию, возвращающую промисы.
import util from 'node:util';
import fs from 'node:fs';
const stat = util.promisify(fs.stat);
stat('.').then((stats) => {
// Do something with `stats`
}).catch((error) => {
// Handle the error.
});
Или, что эквивалентно, с использованием async function:
import util from 'node:util';
import fs from 'node:fs';
const stat = util.promisify(fs.stat);
async function callStat() {
const stats = await stat('.');
console.log(`This directory is owned by ${stats.uid}`);
}
callStat();
Если присутствует свойство original[util.promisify.custom], promisify возвращает его значение; см. Custom promisified functions.
promisify() предполагает, что original во всех случаях является функцией, принимающей обратный вызов в качестве последнего аргумента. Если original не является функцией, promisify() выдаст ошибку. Если original является функцией, но её последний аргумент не является обратным вызовом с ошибкой в первом аргументе, ей всё равно будет передан такой обратный вызов в качестве последнего аргумента.
Использование promisify() с методами классов или другими методами, использующими this, может привести к неожиданным результатам, если не обработать их специальным образом:
import util from 'node:util';
class Foo {
constructor() {
this.a = 42;
}
bar(callback) {
callback(null, this.a);
}
}
const foo = new Foo();
const naiveBar = util.promisify(foo.bar);
// TypeError: Cannot read property 'a' of undefined
// naiveBar().then(a => console.log(a));
naiveBar.call(foo).then((a) => console.log(a)); // '42'
const bindBar = naiveBar.bind(foo);
bindBar().then((a) => console.log(a)); // '42'
Параметры типа
TCustom extends Function Параметры
fn: CustomPromisify<TCustom> Тип возвращаемого значения
Перегрузка 2
promisify<TResult>(fn: (callback: (
err: any,
result: TResult,
) => void) => void): () => Promise<TResult>
Перегрузка 3
promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>Параметры
fn: (callback: (err?: any) => void) => void Тип возвращаемого значения
() => Promise<void> Перегрузка 4
promisify<
T1,
TResult,
>(fn: (
arg1: T1,
callback: (
err: any,
result: TResult,
) => void,
) => void): (arg1: T1) => Promise<TResult>
Перегрузка 5
promisify<T1>(fn: (
arg1: T1,
callback: (err?: any) => void,
) => void): (arg1: T1) => Promise<void>
Перегрузка 6
promisify<
T1,
T2,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
callback: (
err: any,
result: TResult,
) => void,
) => void): (
arg1: T1,
arg2: T2,
) => Promise<TResult>
Перегрузка 7
promisify<
T1,
T2,
>(fn: (
arg1: T1,
arg2: T2,
callback: (err?: any) => void,
) => void): (
arg1: T1,
arg2: T2,
) => Promise<void>
Перегрузка 8
promisify<
T1,
T2,
T3,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (
err: any,
result: TResult,
) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<TResult>
Перегрузка 9
promisify<
T1,
T2,
T3,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
callback: (err?: any) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
) => Promise<void>
Перегрузка 10
promisify<
T1,
T2,
T3,
T4,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (
err: any,
result: TResult,
) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<TResult>
Перегрузка 11
promisify<
T1,
T2,
T3,
T4,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
callback: (err?: any) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
) => Promise<void>
Перегрузка 12
promisify<
T1,
T2,
T3,
T4,
T5,
TResult,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (
err: any,
result: TResult,
) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<TResult>
Перегрузка 13
promisify<
T1,
T2,
T3,
T4,
T5,
>(fn: (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
callback: (err?: any) => void,
) => void): (
arg1: T1,
arg2: T2,
arg3: T3,
arg4: T4,
arg5: T5,
) => Promise<void>
Перегрузка 14
promisify(fn: Function): FunctionПараметры
fn: Function Тип возвращаемого значения
Function пространство имён promisify
Переменные
Можно использовать для объявления пользовательских вариантов функций, преобразованных в промисы.
функция stripVTControlCharacters
Использование в Deno
import { stripVTControlCharacters } from "node:util";
stripVTControlCharacters(str: string): stringВозвращает str без ANSI-кодов escape-последовательностей.
console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m'));
// Prints "value"
Параметры
str: string Тип возвращаемого значения
string функция styleText
Использование в Deno
import { styleText } from "node:util";
styleText(
format: ,
text: string,
): stringЭта функция возвращает отформатированный текст с учётом переданных format.
import { styleText } from 'node:util';
const errorMessage = styleText('red', 'Error! Error!');
console.log(errorMessage);
util.inspect.colors также предоставляет текстовые форматы, такие как italic и underline; их можно комбинировать:
console.log(
util.styleText(['underline', 'italic'], 'My italic underlined message'),
);
Если передан массив форматов, они применяются слева направо, поэтому следующий стиль может переопределить предыдущий.
console.log(
util.styleText(['red', 'green'], 'text'), // green
);
Полный список форматов можно найти в разделе модификаторы.
Параметры
format: Текстовый формат или массив текстовых форматов, определённых в util.inspect.colors.
text: string Текст для форматирования.
Тип возвращаемого значения
string функция toUSVString
Использование в Deno
import { toUSVString } from "node:util";
toUSVString(string: string): stringВозвращает string, заменяя все суррогатные кодовые точки (или, что эквивалентно, все непарные кодовые единицы суррогатов) символом замены Unicode U+FFFD.
Параметры
string: string Тип возвращаемого значения
string функция transferableAbortController
Использование в Deno
import { transferableAbortController } from "node:util";
transferableAbortController(): AbortControllerВ настоящее время этот символ не поддерживается.
Создаёт и возвращает экземпляр AbortController, чей AbortSignal помечен как передаваемый и может использоваться с structuredClone() или postMessage().
Тип возвращаемого значения
AbortController Передаваемый AbortController
функция transferableAbortSignal
Использование в Deno
import { transferableAbortSignal } from "node:util";
transferableAbortSignal(signal: AbortSignal): AbortSignalВ настоящее время этот символ не поддерживается.
Помечает данный AbortSignal как передаваемый, чтобы его можно было использовать сstructuredClone() и postMessage().
const signal = transferableAbortSignal(AbortSignal.timeout(100));
const channel = new MessageChannel();
channel.port2.postMessage(signal, [signal]);
Параметры
signal: AbortSignal AbortSignal
Тип возвращаемого значения
AbortSignal Тот же AbortSignal
функция types.isAnyArrayBuffer
Использование в Deno
import { types } from "node:util";
const { isAnyArrayBuffer } = types;
isAnyArrayBuffer(object: unknown): object is ArrayBufferLikeВозвращает true, если значение является экземпляром встроенного ArrayBuffer или SharedArrayBuffer.
См. также util.types.isArrayBuffer() и util.types.isSharedArrayBuffer().
util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true
util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true
Параметры
object: unknown Тип возвращаемого значения
object is ArrayBufferLike функция types.isArgumentsObject
Использование в Deno
import { types } from "node:util";
const { isArgumentsObject } = types;
isArgumentsObject(object: unknown): object is IArgumentsВозвращает true, если значение является объектом arguments.
function foo() {
util.types.isArgumentsObject(arguments); // Returns true
}
Параметры
object: unknown Тип возвращаемого значения
object is IArguments функция types.isArrayBuffer
Использование в Deno
import { types } from "node:util";
const { isArrayBuffer } = types;
isArrayBuffer(object: unknown): object is ArrayBufferВозвращает true, если значение является экземпляром встроенного ArrayBuffer. Сюда не входят экземпляры SharedArrayBuffer. Обычно желательно проверять оба типа; для этого см. util.types.isAnyArrayBuffer().
util.types.isArrayBuffer(new ArrayBuffer()); // Returns true
util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false
Параметры
object: unknown Тип возвращаемого значения
object is ArrayBuffer функция types.isArrayBufferView
Использование в Deno
import { types } from "node:util";
const { isArrayBufferView } = types;
isArrayBufferView(object: unknown): object is ArrayBufferViewВозвращает true, если значение является экземпляром одного из представлений ArrayBuffer, например типизированного массива или DataView. Эквивалентно ArrayBuffer.isView().
util.types.isArrayBufferView(new Int8Array()); // true
util.types.isArrayBufferView(Buffer.from('hello world')); // true
util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
util.types.isArrayBufferView(new ArrayBuffer()); // false
Параметры
object: unknown Тип возвращаемого значения
object is ArrayBufferView функция types.isAsyncFunction
Использование в Deno
import { types } from "node:util";
const { isAsyncFunction } = types;
isAsyncFunction(object: unknown): booleanВозвращает true, если значение является асинхронной функцией. Результат отражает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
util.types.isAsyncFunction(function foo() {}); // Returns false
util.types.isAsyncFunction(async function foo() {}); // Returns true
Параметры
object: unknown Тип возвращаемого значения
boolean функция types.isBigInt64Array
Использование в Deno
import { types } from "node:util";
const { isBigInt64Array } = types;
isBigInt64Array(value: unknown): value is BigInt64ArrayВозвращает true, если значение является экземпляром BigInt64Array.
util.types.isBigInt64Array(new BigInt64Array()); // Returns true
util.types.isBigInt64Array(new BigUint64Array()); // Returns false
Параметры
value: unknown Тип возвращаемого значения
value is BigInt64Array функция types.isBigIntObject
Использование в Deno
import { types } from "node:util";
const { isBigIntObject } = types;
isBigIntObject(object: unknown): object is BigIntВозвращает true, если значение является объектом BigInt, например созданным с помощью Object(BigInt(123)).
util.types.isBigIntObject(Object(BigInt(123))); // Returns true
util.types.isBigIntObject(BigInt(123)); // Returns false
util.types.isBigIntObject(123); // Returns false
Параметры
object: unknown Тип возвращаемого значения
object is BigInt функция types.isBigUint64Array
Использование в Deno
import { types } from "node:util";
const { isBigUint64Array } = types;
isBigUint64Array(value: unknown): value is BigUint64ArrayВозвращает true, если значение является экземпляром BigUint64Array.
util.types.isBigUint64Array(new BigInt64Array()); // Returns false
util.types.isBigUint64Array(new BigUint64Array()); // Returns true
Параметры
value: unknown Тип возвращаемого значения
value is BigUint64Array функция types.isBooleanObject
Использование в Deno
import { types } from "node:util";
const { isBooleanObject } = types;
isBooleanObject(object: unknown): object is BooleanВозвращает true, если значение является логическим объектом, например созданным с помощью new Boolean().
util.types.isBooleanObject(false); // Returns false
util.types.isBooleanObject(true); // Returns false
util.types.isBooleanObject(new Boolean(false)); // Returns true
util.types.isBooleanObject(new Boolean(true)); // Returns true
util.types.isBooleanObject(Boolean(false)); // Returns false
util.types.isBooleanObject(Boolean(true)); // Returns false
Параметры
object: unknown Тип возвращаемого значения
object is Boolean функция types.isBoxedPrimitive
Использование в Deno
import { types } from "node:util";
const { isBoxedPrimitive } = types;
isBoxedPrimitive(object: unknown): object is
String
| Number
| BigInt
| Boolean
| Symbol
Возвращает true, если значение является любым объектом-обёрткой примитивного типа, например созданным с помощью new Boolean(), new String() или Object(Symbol()).
Например:
util.types.isBoxedPrimitive(false); // Returns false
util.types.isBoxedPrimitive(new Boolean(false)); // Returns true
util.types.isBoxedPrimitive(Symbol('foo')); // Returns false
util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true
util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true
Параметры
object: unknown Тип возвращаемого значения
object is
String
| Number
| BigInt
| Boolean
| Symbol
функция types.isCryptoKey
Использование в Deno
import { types } from "node:util";
const { isCryptoKey } = types;
isCryptoKey(object: unknown): object is webcrypto.CryptoKeyВозвращает true, если value является CryptoKey, и false в противном случае.
Параметры
object: unknown Тип возвращаемого значения
object is webcrypto.CryptoKey функция types.isDataView
Использование в Deno
import { types } from "node:util";
const { isDataView } = types;
isDataView(object: unknown): object is DataViewВозвращает true, если значение является экземпляром встроенного DataView.
const ab = new ArrayBuffer(20);
util.types.isDataView(new DataView(ab)); // Returns true
util.types.isDataView(new Float64Array()); // Returns false
См. также ArrayBuffer.isView().
Параметры
object: unknown Тип возвращаемого значения
object is DataView функция types.isDate
Использование в Deno
import { types } from "node:util";
const { isDate } = types;
isDate(object: unknown): object is DateВозвращает true, если значение является экземпляром встроенного Date.
util.types.isDate(new Date()); // Returns true
Параметры
object: unknown Тип возвращаемого значения
object is Date функция types.isExternal
Использование в Deno
import { types } from "node:util";
const { isExternal } = types;
isExternal(object: unknown): booleanВозвращает true, если значение является нативным значением External.
Нативное значение External — это особый тип объекта, содержащий необработанный указатель C++ (void*) для доступа из нативного кода и не имеющий других свойств. Такие объекты создаются внутренними компонентами Node.js или нативными дополнениями. В JavaScript это замороженные объекты с прототипом null.
#include <js_native_api.h>
#include <stdlib.h>
napi_value result;
static napi_value MyNapi(napi_env env, napi_callback_info info) {
int* raw = (int*) malloc(1024);
napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &result);
if (status != napi_ok) {
napi_throw_error(env, NULL, "napi_create_external failed");
return NULL;
}
return result;
}
...
DECLARE_NAPI_PROPERTY("myNapi", MyNapi)
...
const native = require('napi_addon.node');
const data = native.myNapi();
util.types.isExternal(data); // returns true
util.types.isExternal(0); // returns false
util.types.isExternal(new String('foo')); // returns false
Дополнительные сведения о napi_create_external см. в napi_create_external().
Параметры
object: unknown Тип возвращаемого значения
boolean функция types.isFloat32Array
Использование в Deno
import { types } from "node:util";
const { isFloat32Array } = types;
isFloat32Array(object: unknown): object is Float32ArrayВозвращает true, если значение является экземпляром встроенного Float32Array.
util.types.isFloat32Array(new ArrayBuffer()); // Returns false
util.types.isFloat32Array(new Float32Array()); // Returns true
util.types.isFloat32Array(new Float64Array()); // Returns false
Параметры
object: unknown Тип возвращаемого значения
object is Float32Array функция types.isFloat64Array
Использование в Deno
import { types } from "node:util";
const { isFloat64Array } = types;
isFloat64Array(object: unknown): object is Float64ArrayВозвращает true, если значение является экземпляром встроенного Float64Array.
util.types.isFloat64Array(new ArrayBuffer()); // Returns false
util.types.isFloat64Array(new Uint8Array()); // Returns false
util.types.isFloat64Array(new Float64Array()); // Returns true
Параметры
object: unknown Возвращаемый тип
object is Float64Array функция types.isGeneratorFunction
Использование в Deno
import { types } from "node:util";
const { isGeneratorFunction } = types;
isGeneratorFunction(object: unknown): object is GeneratorFunctionВозвращает true, если значение является функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
util.types.isGeneratorFunction(function foo() {}); // Returns false
util.types.isGeneratorFunction(function* foo() {}); // Returns true
Параметры
object: unknown Возвращаемый тип
object is GeneratorFunction функция types.isGeneratorObject
Использование в Deno
import { types } from "node:util";
const { isGeneratorObject } = types;
isGeneratorObject(object: unknown): object is GeneratorВозвращает true, если значение является объектом-генератором, возвращённым встроенной функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
function* foo() {}
const generator = foo();
util.types.isGeneratorObject(generator); // Returns true
Параметры
object: unknown Возвращаемый тип
object is Generator функция types.isInt16Array
Использование в Deno
import { types } from "node:util";
const { isInt16Array } = types;
isInt16Array(object: unknown): object is Int16ArrayВозвращает true, если значение является экземпляром встроенного Int16Array.
util.types.isInt16Array(new ArrayBuffer()); // Returns false
util.types.isInt16Array(new Int16Array()); // Returns true
util.types.isInt16Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Int16Array функция types.isInt32Array
Использование в Deno
import { types } from "node:util";
const { isInt32Array } = types;
isInt32Array(object: unknown): object is Int32ArrayВозвращает true, если значение является экземпляром встроенного Int32Array.
util.types.isInt32Array(new ArrayBuffer()); // Returns false
util.types.isInt32Array(new Int32Array()); // Returns true
util.types.isInt32Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Int32Array функция types.isInt8Array
Использование в Deno
import { types } from "node:util";
const { isInt8Array } = types;
isInt8Array(object: unknown): object is Int8ArrayВозвращает true, если значение является экземпляром встроенного Int8Array.
util.types.isInt8Array(new ArrayBuffer()); // Returns false
util.types.isInt8Array(new Int8Array()); // Returns true
util.types.isInt8Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Int8Array функция types.isKeyObject
Использование в Deno
import { types } from "node:util";
const { isKeyObject } = types;
isKeyObject(object: unknown): object is KeyObjectВозвращает true, если value является KeyObject, в противном случае — false.
Параметры
object: unknown Возвращаемый тип
object is KeyObject функция types.isMap
Использование в Deno
import { types } from "node:util";
const { isMap } = types;
isMap<T>(object: T | { }): object is T extends ReadonlyMap<any, any> ? (unknown extends T ? never : ReadonlyMap<any, any>) : Map<unknown, unknown>
функция types.isMapIterator
Использование в Deno
import { types } from "node:util";
const { isMapIterator } = types;
isMapIterator(object: unknown): booleanВозвращает true, если значение является итератором, возвращённым для экземпляра встроенного Map.
const map = new Map();
util.types.isMapIterator(map.keys()); // Returns true
util.types.isMapIterator(map.values()); // Returns true
util.types.isMapIterator(map.entries()); // Returns true
util.types.isMapIterator(map[Symbol.iterator]()); // Returns true
Параметры
object: unknown Возвращаемый тип
boolean функция types.isModuleNamespaceObject
Использование в Deno
import { types } from "node:util";
const { isModuleNamespaceObject } = types;
isModuleNamespaceObject(value: unknown): booleanВозвращает true, если значение является экземпляром объекта пространства имён модуля.
import * as ns from './a.js';
util.types.isModuleNamespaceObject(ns); // Returns true
Параметры
value: unknown Возвращаемый тип
boolean функция types.isNativeError
Использование в Deno
import { types } from "node:util";
const { isNativeError } = types;
isNativeError(object: unknown): object is ErrorВозвращает true, если значение было возвращено конструктором встроенного типа Error.
console.log(util.types.isNativeError(new Error())); // true
console.log(util.types.isNativeError(new TypeError())); // true
console.log(util.types.isNativeError(new RangeError())); // true
Подклассы встроенных типов ошибок также являются встроенными ошибками:
class MyError extends Error {}
console.log(util.types.isNativeError(new MyError())); // true
Тот факт, что значение instanceof является экземпляром встроенного класса ошибок, не равнозначен тому, что isNativeError() возвращает true для этого значения. isNativeError() возвращает true для ошибок из другой области выполнения, тогда как instanceof Error возвращает false для этих ошибок:
import vm from 'node:vm';
const context = vm.createContext({});
const myError = vm.runInContext('new Error()', context);
console.log(util.types.isNativeError(myError)); // true
console.log(myError instanceof Error); // false
И наоборот, isNativeError() возвращает false для всех объектов, которые не были возвращены конструктором встроенной ошибки. Сюда входят значения, которые instanceof являются встроенными ошибками:
const myError = { __proto__: Error.prototype };
console.log(util.types.isNativeError(myError)); // false
console.log(myError instanceof Error); // true
Параметры
object: unknown Возвращаемый тип
object is Error функция types.isNumberObject
Использование в Deno
import { types } from "node:util";
const { isNumberObject } = types;
isNumberObject(object: unknown): object is NumberВозвращает true, если значение является объектом-обёрткой для числа, например созданным с помощью new Number().
util.types.isNumberObject(0); // Returns false
util.types.isNumberObject(new Number(0)); // Returns true
Параметры
object: unknown Возвращаемый тип
object is Number функция types.isPromise
Использование в Deno
import { types } from "node:util";
const { isPromise } = types;
isPromise(object: unknown): object is Promise<unknown>Возвращает true, если значение является встроенным Promise.
util.types.isPromise(Promise.resolve(42)); // Returns true
Параметры
object: unknown Возвращаемый тип
object is Promise<unknown> функция types.isProxy
Использование в Deno
import { types } from "node:util";
const { isProxy } = types;
isProxy(object: unknown): booleanВозвращает true, если значение является экземпляром Proxy.
const target = {};
const proxy = new Proxy(target, {});
util.types.isProxy(target); // Returns false
util.types.isProxy(proxy); // Returns true
Параметры
object: unknown Возвращаемый тип
boolean функция types.isRegExp
Использование в Deno
import { types } from "node:util";
const { isRegExp } = types;
isRegExp(object: unknown): object is RegExpВозвращает true, если значение является объектом регулярного выражения.
util.types.isRegExp(/abc/); // Returns true
util.types.isRegExp(new RegExp('abc')); // Returns true
Параметры
object: unknown Возвращаемый тип
object is RegExp функция types.isSet
Использование в Deno
import { types } from "node:util";
const { isSet } = types;
isSet<T>(object: T | { }): object is T extends ReadonlySet<any> ? (unknown extends T ? never : ReadonlySet<any>) : Set<unknown>
функция types.isSetIterator
Использование в Deno
import { types } from "node:util";
const { isSetIterator } = types;
isSetIterator(object: unknown): booleanВозвращает true, если значение является итератором, возвращённым для экземпляра встроенного Set.
const set = new Set();
util.types.isSetIterator(set.keys()); // Returns true
util.types.isSetIterator(set.values()); // Returns true
util.types.isSetIterator(set.entries()); // Returns true
util.types.isSetIterator(set[Symbol.iterator]()); // Returns true
Параметры
object: unknown Возвращаемый тип
boolean функция types.isSharedArrayBuffer
Использование в Deno
import { types } from "node:util";
const { isSharedArrayBuffer } = types;
функция types.isStringObject
Использование в Deno
import { types } from "node:util";
const { isStringObject } = types;
isStringObject(object: unknown): object is StringВозвращает true, если значение является строковым объектом, например созданным с помощью new String().
util.types.isStringObject('foo'); // Returns false
util.types.isStringObject(new String('foo')); // Returns true
Параметры
object: unknown Возвращаемый тип
object is String функция types.isSymbolObject
Использование в Deno
import { types } from "node:util";
const { isSymbolObject } = types;
isSymbolObject(object: unknown): object is SymbolВозвращает true, если значение является символьным объектом, созданным вызовом Object() для примитивного значения Symbol.
const symbol = Symbol('foo');
util.types.isSymbolObject(symbol); // Returns false
util.types.isSymbolObject(Object(symbol)); // Returns true
Параметры
object: unknown Возвращаемый тип
object is Symbol функция types.isTypedArray
Использование в Deno
import { types } from "node:util";
const { isTypedArray } = types;
isTypedArray(object: unknown): object is TypedArrayВозвращает true, если значение является экземпляром встроенного объекта TypedArray.
util.types.isTypedArray(new ArrayBuffer()); // Returns false
util.types.isTypedArray(new Uint8Array()); // Returns true
util.types.isTypedArray(new Float64Array()); // Returns true
См. также ArrayBuffer.isView().
Параметры
object: unknown Возвращаемый тип
object is TypedArray функция types.isUint16Array
Использование в Deno
import { types } from "node:util";
const { isUint16Array } = types;
isUint16Array(object: unknown): object is Uint16ArrayВозвращает true, если значение является экземпляром встроенного объекта Uint16Array.
util.types.isUint16Array(new ArrayBuffer()); // Returns false
util.types.isUint16Array(new Uint16Array()); // Returns true
util.types.isUint16Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Uint16Array функция types.isUint32Array
Использование в Deno
import { types } from "node:util";
const { isUint32Array } = types;
isUint32Array(object: unknown): object is Uint32ArrayВозвращает true, если значение является экземпляром встроенного объекта Uint32Array.
util.types.isUint32Array(new ArrayBuffer()); // Returns false
util.types.isUint32Array(new Uint32Array()); // Returns true
util.types.isUint32Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Uint32Array функция types.isUint8Array
Использование в Deno
import { types } from "node:util";
const { isUint8Array } = types;
isUint8Array(object: unknown): object is Uint8ArrayВозвращает true, если значение является экземпляром встроенного объекта Uint8Array.
util.types.isUint8Array(new ArrayBuffer()); // Returns false
util.types.isUint8Array(new Uint8Array()); // Returns true
util.types.isUint8Array(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Uint8Array функция types.isUint8ClampedArray
Использование в Deno
import { types } from "node:util";
const { isUint8ClampedArray } = types;
isUint8ClampedArray(object: unknown): object is Uint8ClampedArrayВозвращает true, если значение является экземпляром встроенного объекта Uint8ClampedArray.
util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false
util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true
util.types.isUint8ClampedArray(new Float64Array()); // Returns false
Параметры
object: unknown Возвращаемый тип
object is Uint8ClampedArray функция types.isWeakMap
Использование в Deno
import { types } from "node:util";
const { isWeakMap } = types;
isWeakMap(object: unknown): object is WeakMap<object, unknown>Возвращает true, если значение является экземпляром встроенного объекта WeakMap.
util.types.isWeakMap(new WeakMap()); // Returns true
Параметры
object: unknown Возвращаемый тип
object is WeakMap<object, unknown> функция types.isWeakSet
Использование в Deno
import { types } from "node:util";
const { isWeakSet } = types;
isWeakSet(object: unknown): object is WeakSet<object>Возвращает true, если значение является экземпляром встроенного объекта WeakSet.
util.types.isWeakSet(new WeakSet()); // Returns true
Параметры
object: unknown Возвращаемый тип
object is WeakSet<object> функция isArray
Использование в Deno
import { isArray } from "node:util";
isArray(object: unknown): object is unknown[]Псевдоним для Array.isArray().
Возвращает true, если указанное значение object является Array. В противном случае возвращает false.
import util from 'node:util';
util.isArray([]);
// Returns: true
util.isArray(new Array());
// Returns: true
util.isArray({});
// Returns: false
Параметры
object: unknown Возвращаемый тип
object is unknown[] функция isBoolean
Использование в Deno
import { isBoolean } from "node:util";
isBoolean(object: unknown): object is booleanВозвращает true, если указанное значение object является Boolean. В противном случае возвращает false.
import util from 'node:util';
util.isBoolean(1);
// Returns: false
util.isBoolean(0);
// Returns: false
util.isBoolean(false);
// Returns: true
Параметры
object: unknown Возвращаемый тип
object is boolean функция isBuffer
Использование в Deno
import { isBuffer } from "node:util";
isBuffer(object: unknown): object is BufferВозвращает true, если указанное значение object является Buffer. В противном случае возвращает false.
import util from 'node:util';
util.isBuffer({ length: 0 });
// Returns: false
util.isBuffer([]);
// Returns: false
util.isBuffer(Buffer.from('hello world'));
// Returns: true
Параметры
object: unknown Возвращаемый тип
object is Buffer функция isDate
Использование в Deno
import { isDate } from "node:util";
isDate(object: unknown): object is DateВозвращает true, если указанное значение object является Date. В противном случае возвращает false.
import util from 'node:util';
util.isDate(new Date());
// Returns: true
util.isDate(Date());
// false (without 'new' returns a String)
util.isDate({});
// Returns: false
Параметры
object: unknown Возвращаемый тип
object is Date функция isError
Использование в Deno
import { isError } from "node:util";
isError(object: unknown): object is ErrorВозвращает true, если указанное значение object является Error. В противном случае возвращает false.
import util from 'node:util';
util.isError(new Error());
// Returns: true
util.isError(new TypeError());
// Returns: true
util.isError({ name: 'Error', message: 'an error occurred' });
// Returns: false
Этот метод зависит от поведения Object.prototype.toString(). Если аргумент object изменяет @@toStringTag, возможен неверный результат.
import util from 'node:util';
const obj = { name: 'Error', message: 'an error occurred' };
util.isError(obj);
// Returns: false
obj[Symbol.toStringTag] = 'Error';
util.isError(obj);
// Returns: true
Параметры
object: unknown Возвращаемый тип
object is Error функция isFunction
Использование в Deno
import { isFunction } from "node:util";
isFunction(object: unknown): booleanВозвращает true, если указанное значение object является Function. В противном случае возвращает false.
import util from 'node:util';
function Foo() {}
const Bar = () => {};
util.isFunction({});
// Returns: false
util.isFunction(Foo);
// Returns: true
util.isFunction(Bar);
// Returns: true
Параметры
object: unknown Возвращаемый тип
boolean функция isNull
Использование в Deno
import { isNull } from "node:util";
isNull(object: unknown): object is nullВозвращает true, если указанное значение object строго равно null. В противном случае возвращаетfalse.
import util from 'node:util';
util.isNull(0);
// Returns: false
util.isNull(undefined);
// Returns: false
util.isNull(null);
// Returns: true
Параметры
object: unknown Возвращаемый тип
object is null функция isNullOrUndefined
Использование в Deno
import { isNullOrUndefined } from "node:util";
isNullOrUndefined(object: unknown): object is null | undefinedВозвращает true, если заданное object равно null или undefined. В противном случае возвращает false.
import util from 'node:util';
util.isNullOrUndefined(0);
// Returns: false
util.isNullOrUndefined(undefined);
// Returns: true
util.isNullOrUndefined(null);
// Returns: true
Параметры
object: unknown Тип возвращаемого значения
object is null | undefined функция isNumber
Использование в Deno
import { isNumber } from "node:util";
isNumber(object: unknown): object is numberВозвращает true, если заданное object является Number. В противном случае возвращает false.
import util from 'node:util';
util.isNumber(false);
// Returns: false
util.isNumber(Infinity);
// Returns: true
util.isNumber(0);
// Returns: true
util.isNumber(NaN);
// Returns: true
Параметры
object: unknown Тип возвращаемого значения
object is number функция isObject
Использование в Deno
import { isObject } from "node:util";
isObject(object: unknown): booleanВозвращает true, если заданное object является именно Objectи не является Function (хотя функции в JavaScript являются объектами). В противном случае возвращает false.
import util from 'node:util';
util.isObject(5);
// Returns: false
util.isObject(null);
// Returns: false
util.isObject({});
// Returns: true
util.isObject(() => {});
// Returns: false
Параметры
object: unknown Тип возвращаемого значения
boolean функция isPrimitive
Использование в Deno
import { isPrimitive } from "node:util";
isPrimitive(object: unknown): booleanВозвращает true, если заданное object является примитивным типом. В противном случае возвращает false.
import util from 'node:util';
util.isPrimitive(5);
// Returns: true
util.isPrimitive('foo');
// Returns: true
util.isPrimitive(false);
// Returns: true
util.isPrimitive(null);
// Returns: true
util.isPrimitive(undefined);
// Returns: true
util.isPrimitive({});
// Returns: false
util.isPrimitive(() => {});
// Returns: false
util.isPrimitive(/^$/);
// Returns: false
util.isPrimitive(new Date());
// Returns: false
Параметры
object: unknown Тип возвращаемого значения
boolean функция isRegExp
Использование в Deno
import { isRegExp } from "node:util";
isRegExp(object: unknown): object is RegExpВозвращает true, если заданное object является RegExp. В противном случае возвращает false.
import util from 'node:util';
util.isRegExp(/some regexp/);
// Returns: true
util.isRegExp(new RegExp('another regexp'));
// Returns: true
util.isRegExp({});
// Returns: false
Параметры
object: unknown Тип возвращаемого значения
object is RegExp функция isString
Использование в Deno
import { isString } from "node:util";
isString(object: unknown): object is stringВозвращает true, если заданное object является string. В противном случае возвращает false.
import util from 'node:util';
util.isString('');
// Returns: true
util.isString('foo');
// Returns: true
util.isString(String('foo'));
// Returns: true
util.isString(5);
// Returns: false
Параметры
object: unknown Тип возвращаемого значения
object is string функция isSymbol
Использование в Deno
import { isSymbol } from "node:util";
isSymbol(object: unknown): object is symbolВозвращает true, если заданное object является Symbol. В противном случае возвращает false.
import util from 'node:util';
util.isSymbol(5);
// Returns: false
util.isSymbol('foo');
// Returns: false
util.isSymbol(Symbol('foo'));
// Returns: true
Параметры
object: unknown Тип возвращаемого значения
object is symbol функция isUndefined
Использование в Deno
import { isUndefined } from "node:util";
isUndefined(object: unknown): object is undefinedВозвращает true, если заданное object равно undefined. В противном случае возвращает false.
import util from 'node:util';
const foo = undefined;
util.isUndefined(5);
// Returns: false
util.isUndefined(foo);
// Returns: true
util.isUndefined(null);
// Returns: false
Параметры
object: unknown Тип возвращаемого значения
object is undefined функция log
Использование в Deno
import { log } from "node:util";
log(string: string): voidМетод util.log() выводит заданное string в stdout с добавлением временной метки.
import util from 'node:util';
util.log('Timestamped message.');
Параметры
string: string Тип возвращаемого значения
void интерфейс CallSiteObject
Использование в Deno
import { type CallSiteObject } from "node:util";
Свойства
functionName: string Возвращает имя функции, связанной с этим местом вызова.
scriptName: string Возвращает имя ресурса, содержащего скрипт функции для этого места вызова.
scriptId: string Возвращает уникальный идентификатор скрипта, как в протоколе Chrome DevTools Runtime.ScriptId.
lineNumber: number Возвращает номер строки, начиная с 1, для соответствующего вызова функции.
columnNumber: number Возвращает смещение столбца в строке, начиная с 1, для соответствующего вызова функции.
интерфейс CustomPromisifyLegacy
Использование в Deno
import { type CustomPromisifyLegacy } from "node:util";
Параметры типа
TCustom extends Function Свойства
интерфейс CustomPromisifySymbol
Использование в Deno
import { type CustomPromisifySymbol } from "node:util";
Параметры типа
TCustom extends Function Свойства
интерфейс DebugLogger
Использование в Deno
import { type DebugLogger } from "node:util";
Свойства
enabled: boolean интерфейс EncodeIntoResult
Использование в Deno
import { type EncodeIntoResult } from "node:util";
интерфейс GetCallSitesOptions
Использование в Deno
import { type GetCallSitesOptions } from "node:util";
Свойства
sourceMap: boolean | undefined Восстанавливает исходное расположение в трассировке стека с помощью source map. По умолчанию включено с флагом --enable-source-maps.
интерфейс InspectOptions
Использование в Deno
import { type InspectOptions } from "node:util";
Свойства
depth:
number
| null
| undefined
Задаёт количество рекурсивных вызовов при форматировании объекта. Это полезно при просмотре больших объектов. Чтобы выполнять рекурсию до максимального размера стека вызовов, передайте Infinity или null.
colors: boolean | undefined Если true, вывод оформляется с помощью цветовых кодов ANSI. Цвета можно настроить.
customInspect: boolean | undefined Если false, функции [util.inspect.custom](depth, opts, inspect) не вызываются.
showProxy: boolean | undefined Если true, при проверке Proxy включаются целевой объект и объект-обработчик.
maxArrayLength:
number
| null
| undefined
Задаёт максимальное количество элементов Array, TypedArray, WeakMap и WeakSet, включаемых при форматировании. Установите значение null или Infinity, чтобы отобразить все элементы. Установите значение 0 или отрицательное значение, чтобы не отображать элементы.
maxStringLength:
number
| null
| undefined
Задаёт максимальное количество символов, включаемых при форматировании. Установите значение null или Infinity, чтобы отобразить все элементы. Установите значение 0 или отрицательное значение, чтобы не отображать символы.
breakLength: number | undefined Длина, при достижении которой входные значения разбиваются на несколько строк. Установите значение Infinity, чтобы форматировать входные данные в одну строку (в сочетании с параметром compact, установленным в true или любое число >= 1).
compact:
boolean
| number
| undefined
Установка значения false приводит к отображению каждого ключа объекта на новой строке. Также новые строки добавляются в текст длиннее breakLength. Если задано число, наиболее n внутренних элементов объединяются в одну строку, если все свойства помещаются в breakLength. Короткие элементы массива также группируются. Обратите внимание: текст не будет сокращён до длины менее 16 символов независимо от размера breakLength. Дополнительные сведения см. в примере ниже.
sorted:
boolean
| ((
a: string,
b: string,
) => number)
| undefined
Если задано значение true или функция, все свойства объекта, а также записи Set и Map сортируются в результирующей строке. Если задано значение true, используется сортировка по умолчанию. Если задана функция, она используется в качестве функции сравнения.
getters:
"get"
| "set"
| boolean
| undefined
Если задано значение true, будут проверяться и геттеры. Если задано значение 'get', будут проверяться только геттеры без сеттера. Если задано значение 'set', будут проверяться только геттеры с соответствующим сеттером. В зависимости от функции-геттера это может привести к побочным эффектам.
numericSeparator: boolean | undefined Если задано значение true, для разделения каждой группы из трёх цифр во всех значениях bigint и числах используется символ подчёркивания.
интерфейс InspectOptionsStylized
Использование в Deno
import { type InspectOptionsStylized } from "node:util";
интерфейс ParseArgsConfig
Использование в Deno
import { type ParseArgsConfig } from "node:util";
Свойства
args: string[] | undefined Массив строк аргументов.
options: ParseArgsOptionsConfig | undefined Используется для описания аргументов, известных анализатору.
strict: boolean | undefined Следует ли выбрасывать ошибку при обнаружении неизвестных аргументов или при передаче аргументов, не соответствующих type, заданным в options.
allowPositionals: boolean | undefined Принимает ли эта команда позиционные аргументы.
allowNegative: boolean | undefined Если true, позволяет явно устанавливать логические параметры в значение false, добавляя --no- перед именем параметра.
tokens: boolean | undefined Возвращает разобранные токены. Это полезно для расширения встроенного поведения: от добавления дополнительных проверок до повторной обработки токенов различными способами.
интерфейс ParseArgsOptionDescriptor
Использование в Deno
import { type ParseArgsOptionDescriptor } from "node:util";
Свойства
Тип аргумента.
multiple: boolean | undefined Можно ли указывать этот параметр несколько раз. Если true, все значения будут собраны в массив. Если false, для параметра используется последнее указанное значение.
short: string | undefined Односимвольный псевдоним параметра.
default:
string
| boolean
| string[]
| boolean[]
| undefined
Значение по умолчанию, используемое только в том случае, если параметр отсутствует среди анализируемых аргументов. Оно должно иметь тот же тип, что и свойство type. Если multiple равно true, оно должно быть массивом.
интерфейс ParseArgsOptionsConfig
Использование в Deno
import { type ParseArgsOptionsConfig } from "node:util";
Сигнатуры индекса
пространство имён types
Использование в Deno
import { types } from "node:util";
Функции
Возвращает true, если значение является экземпляром встроенного ArrayBuffer или SharedArrayBuffer.
Возвращает true, если значение является объектом arguments.
Возвращает true, если значение является экземпляром встроенного ArrayBuffer. Сюда не входят экземпляры SharedArrayBuffer. Обычно желательно проверять оба типа; для этого см. util.types.isAnyArrayBuffer().
Возвращает true, если значение является экземпляром одного из представлений ArrayBuffer, например типизированного массива или DataView. Эквивалентно ArrayBuffer.isView().
Возвращает true, если значение является асинхронной функцией. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
Возвращает true, если значение является экземпляром BigInt64Array.
Возвращает true, если значение является объектом BigInt, например созданным с помощью Object(BigInt(123)).
Возвращает true, если значение является экземпляром BigUint64Array.
Возвращает true, если значение является объектом boolean, например созданным с помощью new Boolean().
Возвращает true, если значение является любым объектом-обёрткой примитива, например созданным с помощью new Boolean(), new String() или Object(Symbol()).
Возвращает true, если value является CryptoKey, и false в противном случае.
Возвращает true, если значение является экземпляром встроенного DataView.
Возвращает true, если значение является экземпляром встроенного Date.
Возвращает true, если значение является нативным значением External.
Возвращает true, если значение является экземпляром встроенного Float32Array.
Возвращает true, если значение является экземпляром встроенного Float64Array.
Возвращает true, если значение является функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
Возвращает true, если значение является объектом-генератором, возвращённым встроенной функцией-генератором. Функция сообщает только то, что видит движок JavaScript; в частности, возвращаемое значение может не соответствовать исходному коду, если использовался инструмент транспиляции.
Возвращает true, если значение является экземпляром встроенного Int16Array.
Возвращает true, если значение является экземпляром встроенного Int32Array.
Возвращает true, если значение является экземпляром встроенного Int8Array.
Возвращает true, если value является KeyObject, и false в противном случае.
Возвращает true, если значение является экземпляром встроенного Map.
Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Map.
Возвращает true, если значение является экземпляром объекта пространства имён модуля.
Возвращает true, если значение было возвращено конструктором встроенного типа Error.
Возвращает true, если значение является объектом number, например созданным с помощью new Number().
Возвращает true, если значение является встроенным Promise.
Возвращает true, если значение является экземпляром Proxy.
Возвращает true, если значение является объектом регулярного выражения.
Возвращает true, если значение является экземпляром встроенного Set.
Возвращает true, если значение является итератором, возвращённым для экземпляра встроенного Set.
Возвращает true, если значение является объектом string, например созданным с помощью new String().
Возвращает true, если значение является объектом symbol, созданным вызовом Object() для примитива Symbol.
Возвращает true, если значение является экземпляром встроенного TypedArray.
Возвращает true, если значение является экземпляром встроенного Uint16Array.
Возвращает true, если значение является экземпляром встроенного Uint32Array.
Возвращает true, если значение является экземпляром встроенного Uint8Array.
Возвращает true, если значение является экземпляром встроенного Uint8ClampedArray.
Возвращает true, если значение является экземпляром встроенного WeakMap.
Возвращает true, если значение является экземпляром встроенного WeakSet.
псевдоним типа ApplyOptionalModifiers
Использование в Deno
import { type ApplyOptionalModifiers } from "node:util";
Параметры типа
O extends ParseArgsOptionsConfig V extends Record<keyof O, unknown> Определение
псевдоним типа BackgroundColors
Использование в Deno
import { type BackgroundColors } from "node:util";
Определение
"bgBlack"
| "bgBlackBright"
| "bgBlue"
| "bgBlueBright"
| "bgCyan"
| "bgCyanBright"
| "bgGray"
| "bgGreen"
| "bgGreenBright"
| "bgGrey"
| "bgMagenta"
| "bgMagentaBright"
| "bgRed"
| "bgRedBright"
| "bgWhite"
| "bgWhiteBright"
| "bgYellow"
| "bgYellowBright"
псевдоним типа CustomInspectFunction
Использование в Deno
import { type CustomInspectFunction } from "node:util";
Определение
(
depth: number,
options: InspectOptionsStylized,
) => any псевдоним типа CustomPromisify
Использование в Deno
import { type CustomPromisify } from "node:util";
Параметры типа
TCustom extends Function Определение
псевдоним типа DebugLoggerFunction
Использование в Deno
import { type DebugLoggerFunction } from "node:util";
Определение
(
msg: string,
...param: unknown[],
) => void псевдоним типа ExtractOptionValue
Использование в Deno
import { type ExtractOptionValue } from "node:util";
Параметры типа
T extends ParseArgsConfig O extends ParseArgsOptionDescriptor Определение
IfDefaultsTrue<T["strict"], O["type"] extends "string" ? string : O["type"] extends "boolean" ? boolean : string | boolean, string | boolean> псевдоним типа ForegroundColors
Использование в Deno
import { type ForegroundColors } from "node:util";
Определение
"black"
| "blackBright"
| "blue"
| "blueBright"
| "cyan"
| "cyanBright"
| "gray"
| "green"
| "greenBright"
| "grey"
| "magenta"
| "magentaBright"
| "red"
| "redBright"
| "white"
| "whiteBright"
| "yellow"
| "yellowBright"
псевдоним типа Modifiers
Использование в Deno
import { type Modifiers } from "node:util";
Определение
"blink"
| "bold"
| "dim"
| "doubleunderline"
| "framed"
| "hidden"
| "inverse"
| "italic"
| "overlined"
| "reset"
| "strikethrough"
| "underline"
псевдоним типа OptionToken
Использование в Deno
import { type OptionToken } from "node:util";
Определение
{ kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean; } | { kind: "option"; index: number; name: string; rawName: string; value: undefined; inlineValue: undefined; } псевдоним типа ParseArgsOptionsType
Использование в Deno
import { type ParseArgsOptionsType } from "node:util";
Тип аргумента, используемый в parseArgs.
Определение
"boolean" | "string" псевдоним типа ParsedOptionToken
Использование в Deno
import { type ParsedOptionToken } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
IfDefaultsTrue<T["strict"], TokenForOptions<T>, OptionToken> псевдоним типа ParsedPositionals
Использование в Deno
import { type ParsedPositionals } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
IfDefaultsTrue<T["strict"], IfDefaultsFalse<T["allowPositionals"], string[], []>, IfDefaultsTrue<T["allowPositionals"], string[], []>> псевдоним типа ParsedPositionalToken
Использование в Deno
import { type ParsedPositionalToken } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
IfDefaultsTrue<T["strict"], IfDefaultsFalse<T["allowPositionals"], { kind: "positional"; index: number; value: string; }, never>, IfDefaultsTrue<T["allowPositionals"], { kind: "positional"; index: number; value: string; }, never>> псевдоним типа ParsedResults
Использование в Deno
import { type ParsedResults } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
ParseArgsConfig extends T ? { values: { [longOption: string]:
undefined
| string
| boolean
| Array<string | boolean>
; }; positionals: string[]; tokens?: Token[]; } : PreciseParsedResults<T> псевдоним типа ParsedTokens
Использование в Deno
import { type ParsedTokens } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
Array<> псевдоним типа ParsedValues
Использование в Deno
import { type ParsedValues } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
IfDefaultsTrue<T["strict"], unknown, { [longOption: string]:
undefined
| string
| boolean
; }> & (T["options"] extends ParseArgsOptionsConfig ? ApplyOptionalModifiers<T["options"], [LongOption in keyof T["options"]]: IfDefaultsFalse<T["options"][LongOption]["multiple"], Array<ExtractOptionValue<T, T["options"][LongOption]>>, ExtractOptionValue<T, T["options"][LongOption]>>> : { }) псевдоним типа PreciseParsedResults
Использование в Deno
import { type PreciseParsedResults } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
IfDefaultsFalse<T["tokens"], { values: ParsedValues<T>; positionals: ParsedPositionals<T>; tokens: ParsedTokens<T>; }, { values: ParsedValues<T>; positionals: ParsedPositionals<T>; }> псевдоним типа PreciseTokenForOptions
Использование в Deno
import { type PreciseTokenForOptions } from "node:util";
Параметры типа
K extends string O extends ParseArgsOptionDescriptor Определение
псевдоним типа Style
Использование в Deno
import { type Style } from "node:util";
Определение
"special"
| "number"
| "bigint"
| "boolean"
| "undefined"
| "null"
| "string"
| "symbol"
| "date"
| "regexp"
| "module"
псевдоним типа Token
Использование в Deno
import { type Token } from "node:util";
Определение
OptionToken
| { kind: "positional"; index: number; value: string; }
| { kind: "option-terminator"; index: number; }
псевдоним типа TokenForOptions
Использование в Deno
import { type TokenForOptions } from "node:util";
Параметры типа
T extends ParseArgsConfig Определение
K extends unknown ? T["options"] extends ParseArgsOptionsConfig ? PreciseTokenForOptions<K & string, T["options"][K]> : OptionToken : never переменная inspect.colors
Использование в Deno
import { inspect } from "node:util";
Тип
Dict<[number, number]> переменная inspect.custom
Использование в Deno
import { inspect } from "node:util";
Можно использовать для объявления пользовательских функций inspect.
Тип
unique symbol переменная inspect.replDefaults
Использование в Deno
import { inspect } from "node:util";
Позволяет изменять настройки inspect из REPL.
Тип
переменная inspect.styles
Использование в Deno
import { inspect } from "node:util";
Тип
[K in Style]: string переменная promisify.custom
Использование в Deno
import { promisify } from "node:util";
Можно использовать для объявления пользовательских вариантов функций с promisify.
Тип
unique symbol
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/util