Primitives
Les primitives métier sont une alternative aux string et number bruts de TypeScript.
Plutôt que de manipuler des valeurs nues, chaque primitive est wrappée dans un container. Résultat : des données plus sûres, plus explicites et mieux alignées avec le domaine.
Exemple
une page sélectionnée n’est pas un simple number, mais une primitive dédiée, indépendante de toute entité métier.
Les primitives ont deux objectifs :
Sécuriser les données en évitant l’usage de valeurs brutes.
Unifier les types : lorsque plusieurs NewTypes interagissent, leur point commun retombe sur une primitive simple (number, string, etc.).
👉 En bref : des types plus propres, plus lisibles et plus robustes, sans complexité inutile
Primitives disponibles
Méthodes et Propriétés
Méthodes
create()
function create(
value: RawType
): EitherRight<Primitive<RawType>> | EitherLeft<ParseError>createOrThrow()
function createOrThrow(
value: RawType
): Primitive<RawType>createWithUnknown()
function createWithUnknown(
value: unknown
): EitherRight<Primitive<RawType>> | EitherLeft<ParseError>createWithUnknownOrThrow()
function createWithUnknownOrThrow(
value: unknown
): Primitive<RawType>is()
function is(
value: unknown
): value is Primitive<RawType>Propriétés
dataParser
Correspond au dataParser qui valide la primitive.
Opérateurs
equal
Compare deux primitives wrappées (ou une primitive et une valeur brute) avec un type guard.
add
Additionne deux Number (supporte la version currifiée).
subtract
Soustrait un nombre à un Number (supporte la version currifiée).
multiply
Multiplie un Number (supporte la version currifiée).
divide
Divise un Number (supporte la version currifiée).
min
Retourne le minimum d'un tuple de Number.
max
Retourne le maximum d'un tuple de Number.
greaterThan
Teste si un Number est strictement supérieur à un seuil.
lessThan
Teste si un Number est strictement inférieur à un seuil.
concat
Concatène des String (supporte la version currifiée).
length
Retourne la longueur d'un String sous forme de Number.
lengthEqual
Teste si la longueur d'un String est égale à une valeur.
lengthGreaterThan
Teste si la longueur d'un String est supérieure à une valeur.
lengthLessThan
Teste si la longueur d'un String est inférieure à une valeur.
dateGreaterThan
Teste si une Date est postérieure à un seuil.
dateLessThan
Teste si une Date est antérieure à un seuil.
dateAddTime
Ajoute une durée à une Date.
dateSubtractTime
Soustrait une durée à une Date.
dateMin
Retourne la plus petite date d'une liste.
dateMax
Retourne la plus grande date d'une liste.
timeGreaterThan
Teste si un Time est strictement supérieur à un seuil.
timeLessThan
Teste si un Time est strictement inférieur à un seuil.
timeMin
Retourne la plus petite durée d'une liste.
timeMax
Retourne la plus grande durée d'une liste.
sort
Trie un tableau de primitives (String, Number, Date ou Time) en "ASC" / "DSC".
