create
La fonction create() construit un TheDate à partir d'un Date, d'un timestamp ou d'une partition littérale (YYYY-MM-DD). Elle peut aussi assembler un SpoolingDate (source + overrides + timezone). Elle renvoie un Either (MayBe) qui contient soit la date valide, soit une erreur typée.
Exemple interactif
Syntaxe
typescript
function create<
GenericInput extends TheDate | Date | number
>(
input: GenericInput
): MayBe
function create<
GenericInput extends SpoolingDate
>(
input: GenericInput
): MayBe
function create<
GenericInput extends `${number}-${MonthWithDay}`
>(
input: GenericInput & YearConstraint,
params?: { hour?: Hour; minute?: Minute; second?: Second; millisecond?: Millisecond }
): TheDateYearConstraint garantit qu'un 29 février n'est accepté que si l'année est bissextile et également que l'année définie respecte les limites supportées.
INFO
La seconde déclaration sert uniquement à déclarer des dates constantes connues à l'avance. Très utile pour des tests unitaires ou des valeurs par défaut.
Paramètres
input: Date d'origine. Accepte unTheDate, unDate, un timestamp, une chaîneYYYY-MM-DD(préfixe négatif accepté pour les années BC) ou unSpoolingDate(valueenDate/timestamp/TheDate/ISOYYYY-MM-DDoptionnellement horodaté) avec des overrides (year,month,day,hour,minute,second,millisecond) et unetimezonesi nécessaire.params: Optionnel. Permet de fournir directement les composantes horaires (hour,minute,second,millisecond).
Valeur de retour
- Dans la signature générique :
EitherRight<"date-created", TheDate>en cas de succès ouEitherLeft<"date-created-error", null>en cas d'échec. - Dans la signature littérale : retourne directement un
TheDatesi la date est valide, sinon une erreur de type compile-time. - Avec
SpoolingDate: retourne unMayBeaprès application éventuelle de la timezone et des overrides.
Formats supportés
Datenatif- Timestamp (
number) TheDate(date{timestamp}{+|-})- Chaîne
YYYY-MM-DD(optionnellement horodatée en ISO pourSpoolingDate) SpoolingDateavectimezoneet overrides sur les composantes de date/heure
Voir aussi
createOrThrow– Version qui lève une exception au lieu d'unEither.isSafeTimestamp– Vérifie qu'un timestamp est exploitable.
