valider un noeud parent revient à valider le type de ses propriétés, autrement dit ses noeuds enfants
tu n'avais pas la validation au début, du coup on pouvait avoir un truc du genre
address.[[null]].city = 'somestring'
ou [[null]] est la valeur de work.
effectivement, si tu mets une validation sur tout l'arbre alors on est assuré que le set laisse le résultat dans un état valide. (l'impression d'enfoncer une porte ouverte )
Après je peux enlever le null-safe mais étant donné que c'était mon besoin initial..
je dis pas de l'enlever, je dirais plutot de les découpler du genre qu'on puisse utiliser une validation sans avoir besoin d'un null safe.
De toute façon, c'est un peu dommage, à chaque set, de faire une validation, et on devrait (enfin je préfère du moins) avoir controle de quand je fais ma validation.
En ce sens, je m'amuse pas à redéfinir 'set' mais appel explicitement la validation.
Le contraire est pas trop gênant vu que syntaxiquement ca change pas grand chose mais pour l'utilisateur qui fait $$$ comme moi, et qui veut utiliser null safe mais pas la validation parce qu'il aime pas comment elle est définie, ben c'est mieux si il peut utiliser null safe sans avoir l'autre composant.
après rien n'empêche de proposer un interfacage entre null safe et validation
un truc genre
model = defineModel({}, Validation)
où bien,
model = validateModel({}, NullSafe)
Partager