Maison > Article > interface Web > Explique comme si j'étais ton junior : pourquoi ?. bien?
J'écris du JS depuis près de deux décennies, mais je ne vois toujours pas pourquoi ?. n'est pas le début d'un anti-modèle, surtout pour les appels de méthode.
J'ai vu le post
Et celui qui a attiré mon attention était le numéro 2 « Chaînage facultatif avec appels de fonction » :
const user = { getName: () => 'Alice', }; console.log(user.getName?.()); // Alice console.log(user.getAge?.()); // undefined
Ce qui crie "Je ne connais pas l'interface de mes objets, et je m'en fiche."
Vous devez absolument vous soucier de l'interface de vos objets.
Je peux presque voir un argument en faveur de la robustesse si l'API d'une bibliothèque change, mais non, si vous utilisez une bibliothèque, vous connaissez l'interface des objets, corrigez votre code.
Cela ressemble à un énorme attracteur de bugs.
Vous ne voulez jamais que quelque chose soit indéfini. Ou ai-je raté un mémo à ce sujet ?
Et cela vaut double pour les méthodes. Si deux objets n'ont pas les mêmes comportements, ils doivent être traités comme des types différents, pas seulement en haussant les épaules et en disant "tout ira bien".
Le test de null est-il illégal de nos jours ? Je sais que null a été qualifié d'erreur d'un milliard de dollars, mais cela est résolu par un type d'option (comme Maybe in Haskell), et non par ce qui ressemble à l'inverse.
Un type d'option vous permet de savoir qu'il s'agit de quelque chose qui pourrait être nul, alors procédez avec prudence. Cela ne cache pas le fait, comme ?. fait.
Cela dit, je suis heureux d'être désabusé de l'idée que ?. c'est juste un coup de pied sur la route lorsqu'il s'agit de vérifier null, ou c'est tout simplement une mauvaise conception lorsqu'il s'agit d'indéfini.
Qu'est-ce qu'un bon modèle, c'est-à-dire celui qui réduit les bugs, que vous pouvez utiliser ?.?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!