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 |
См. также
© 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