Temporal.PlainYearMonth.prototype.with()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die with() Methode von Temporal.PlainYearMonth Instanzen gibt ein neues Temporal.PlainYearMonth Objekt zurück, das diesen Jahr-Monat mit einigen Feldern darstellt, die durch neue Werte ersetzt wurden. Da alle Temporal Objekte so konzipiert sind, dass sie unveränderlich sind, fungiert diese Methode im Wesentlichen als Setter für die Felder des Jahr-Monats.

Es gibt keinen offensichtlichen Weg, ein neues Temporal.PlainYearMonth Objekt zu erstellen, das denselben Jahr-Monat in einem anderen Kalender darstellt. Um seine calendarId Eigenschaft zu ersetzen, müssen Sie es zuerst mithilfe von toPlainDate() in ein Temporal.PlainDate Objekt umwandeln, den Kalender ändern und dann zurück konvertieren.

Syntax

js
with(info)
with(info, options)

Parameter

info

Ein Objekt, das mindestens eine der Eigenschaften enthält, die von Temporal.PlainYearMonth.from() erkannt werden (außer calendar): era und eraYear, month, monthCode, year. Nicht angegebene Eigenschaften verwenden die Werte des ursprünglichen Jahr-Monats. Sie müssen nur eine der Eigenschaften month oder monthCode und eine der Eigenschaften era und eraYear oder year angeben, und die andere wird entsprechend aktualisiert.

options Optional

Ein Objekt, das die folgende Eigenschaft enthält:

overflow Optional

Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des Bereichs liegt. Mögliche Werte sind:

"constrain" (Standard)

Die Datumskomponente wird eingeschränkt auf den gültigen Bereich.

"reject"

Ein RangeError wird ausgelöst, wenn die Datumskomponente außerhalb des Bereichs liegt.

Rückgabewert

Ein neues Temporal.PlainYearMonth Objekt, bei dem die in info angegebenen Felder, die nicht undefined sind, durch die entsprechenden Werte ersetzt werden und die restlichen Felder vom ursprünglichen Datum übernommen werden.

Ausnahmen

TypeError

Wird in einem der folgenden Fälle ausgelöst:

  • info ist kein Objekt.
  • options ist kein Objekt oder undefined.
RangeError

Wird in einem der folgenden Fälle ausgelöst:

  • Die bereitgestellten Eigenschaften, die dieselbe Komponente spezifizieren, sind inkonsistent.
  • Die bereitgestellten nicht-numerischen Eigenschaften sind ungültig; zum Beispiel, wenn monthCode in diesem Kalender nie ein gültiger Monatscode ist.
  • Die bereitgestellten numerischen Eigenschaften liegen außerhalb des Bereichs, und options.overflow ist auf "reject" gesetzt.
  • Das Ergebnis liegt nicht im darstellbaren Bereich, welcher ±(108 + 1) Tage oder etwa ±273.972,6 Jahre ab der Unix-Epoche sind.

Beispiele

Verwendung von with()

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

Für weitere Beispiele siehe die Dokumentation zu den einzelnen Eigenschaften, die mittels with() gesetzt werden können.

Spezifikationen

Specification
Temporal
# sec-temporal.plainyearmonth.prototype.with

Browser-Kompatibilität

Siehe auch