Temporal.PlainDateTime : méthode valueOf()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La méthode valueOf() de Temporal.PlainDateTime lève une TypeError, ce qui empêche les instances Temporal.PlainDateTime d'être converties implicitement en primitives lorsqu'elles sont utilisées dans des opérations arithmétiques ou de comparaison.
Syntaxe
valueOf()
Paramètres
Aucun.
Valeur de retour
Aucun.
Exceptions
TypeError-
Toujours levée.
Description
Parce que la conversion en primitif et la conversion en nombre appellent valueOf() avant toString(), si valueOf() est absent, alors une expression comme dateTime1 > dateTime2 les comparerait implicitement comme des chaînes de caractères, ce qui peut donner des résultats inattendus. En levant une TypeError, les instances Temporal.PlainDateTime empêchent de telles conversions implicites. Il faut les convertir explicitement en chaînes de caractères avec Temporal.PlainDateTime.prototype.toString(), ou utiliser la méthode statique Temporal.PlainDateTime.compare() pour les comparer.
Exemples
>Opérations arithmétiques et de comparaison sur Temporal.PlainDateTime
Toutes les opérations arithmétiques et de comparaison sur les instances Temporal.PlainDateTime doivent utiliser les méthodes dédiées ou convertir explicitement les objets en primitifs.
const dt1 = Temporal.PlainDateTime.from("2022-01-01T00:00:00");
const dt2 = Temporal.PlainDateTime.from("2022-07-01T00:00:00");
dt1 > dt2; // TypeError: can't convert PlainDateTime to primitive type
Temporal.PlainDateTime.compare(dt1, dt2); // -1
dt2 - dt1; // TypeError: can't convert PlainDateTime to primitive type
dt2.since(dt1).toString(); // "P181D"
Spécifications
| Spécification |
|---|
| Temporal> # sec-temporal.plaindatetime.prototype.valueof> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.PlainDateTime - La méthode
Temporal.PlainDateTime.prototype.toString() - La méthode
Temporal.PlainDateTime.prototype.toJSON() - La méthode
Temporal.PlainDateTime.prototype.toLocaleString()