Spec-Zone.ru › JavaScript

Temporal.PlainYearMonth.prototype.with()

Базовый уровень Ограниченная доступность

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

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

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

Синтаксис

with(info)
with(info, options)

Параметры

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

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

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

Исключения

TypeError
Генерируется в одном из следующих случаев:
  • info не является объектом.
  • options не является объектом или undefined.
RangeError
Генерируется в одном из следующих случаев:
  • Предоставленные свойства, которые указывают на один и тот же компонент, противоречивы.
  • Предоставленные нечисловые свойства недействительны; например, если monthCode никогда не является действительным кодом месяца в этом календаре.
  • Предоставленные числовые свойства выходят за пределы диапазона, а options.overflow установлено в "reject".
  • Результат не находится в представимом диапазоне, который составляет ±(108 + 1) дней, или около ±273 972,6 лет, от эпохи Unix.

Примеры

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

const ym = Temporal.PlainYearMonth.from("2021-07");
const newYM = ym.with({ year: 2024 });
console.log(newYM.toString()); // "2024-07"

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

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

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

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

Десктоп Мобильные Сервер
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
предпросмотр
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

См. также

  • Temporal.PlainYearMonth
  • Temporal.PlainYearMonth.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/PlainYearMonth/with

Spec-Zone.ru

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