Spec-Zone.ru › JavaScript

Temporal.PlainMonthDay.prototype.with()

Baseline Ограниченная доступность

Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

Метод with() экземпляров Temporal.PlainMonthDay возвращает новый объект Temporal.PlainMonthDay, представляющий этот месяц-день с некоторыми полями, замененными новыми значениями. Поскольку все объекты Temporal разработаны как неизменяемые, этот метод фактически действует как сеттер для полей месяца-дня.

Нет очевидного способа создать новый объект Temporal.PlainMonthDay, представляющий тот же месяц-день в другом календаре, поэтому для замены его свойства calendarId вам нужно преобразовать его в объект Temporal.PlainDate с помощью toPlainDate(), изменить календарь, а затем преобразовать его обратно.

Синтаксис

with(info)
with(info, options)

Параметры

info
Объект, содержащий как минимум одно из свойств, распознаваемых Temporal.PlainMonthDay.from() (кроме calendar): day, era и eraYear, month, monthCode, year. Неуказанные свойства используют значения из исходного месяца-дня. Вам нужно указать год только в том случае, если вы указываете month, а календарь не является iso8601. Вам нужно указать только одно из month или monthCode, и одно из era и eraYear или year, а другое будет обновлено соответственно.
options Необязательно
Объект, содержащий следующее свойство:
overflow Необязательно
Строка, указывающая поведение, когда компонент даты выходит за пределы диапазона. Возможные значения:
"constrain" (по умолчанию)
Компонент даты привязывается к допустимому диапазону.
"reject"
Будет выброшена ошибка RangeError, если компонент даты выходит за пределы допустимого диапазона.

Возвращаемое значение

Новый объект Temporal.PlainMonthDay, в котором поля, указанные в info, не являющиеся undefined, заменены соответствующими значениями, а остальные поля скопированы из исходной даты.

Исключения

TypeError
Выбрасывается в одном из следующих случаев:
  • info не является объектом.
  • options не является объектом или undefined.
RangeError
Выбрасывается в одном из следующих случаев:
  • Предоставленные свойства, указывающие один и тот же компонент, не согласованы.
  • Предоставленные нечисловые свойства недействительны; например, если monthCode никогда не является допустимым кодом месяца в этом календаре.
  • Предоставленные числовые свойства выходят за пределы допустимого диапазона, а options.overflow установлен в "reject".
  • Если год указан, календарь не является iso8601, и год находится вне допустимого диапазона или диапазонов лет, которые составляют от -271821 до 275760.

Примеры

Использование with()

const md = Temporal.PlainMonthDay.from("07-01");
const newMd = md.with({ day: 2 });
console.log(newMd.toString()); // "07-02"

Для получения дополнительных примеров обратитесь к документации по отдельным свойствам, которые можно установить с помощью with().

Спецификации

Спецификация
Temporal
# sec-temporal.plainmonthday.prototype.with

Совместимость с браузерами

Desktop Mobile Server
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
with
144
144
139
128
preview
144
139
95
No
No
144
No
1.4.0
2.7
26.0.0

См. также

  • Temporal.PlainMonthDay
  • Temporal.PlainMonthDay.from()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/with

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API