私はこの時点で 20 年近く JS を書いてきましたが、その理由がいまだにわかりません。これは、特にメソッド呼び出しの場合、アンチパターンの始まりではありません。
投稿を見ました
そして私の目を引いたのは 2 番目の「関数呼び出しによるオプションのチェーン」です:
const user = { getName: () => 'Alice', }; console.log(user.getName?.()); // Alice console.log(user.getAge?.()); // undefined
これは「自分のオブジェクトへのインターフェースがわからないし、気にしない。」と叫びます。
オブジェクトへのインターフェースには必ず注意を払う必要があります。
ライブラリ API が変更された場合、堅牢性についての議論はほぼわかりますが、いいえ、ライブラリを使用している場合は、オブジェクトへのインターフェイスを知っているので、コードを修正してください。
それは巨大なバグ誘因のように思えます。
何かが未定義になることは決して望ましくありません。それともそれに関するメモを見逃したのでしょうか?
メソッドの場合は 2 倍になります。 2 つのオブジェクトが同じ動作をしない場合は、単に肩をすくめて「大丈夫です」と言うのではなく、異なるタイプとして扱う必要があります。
最近では null のテストは違法ですか? null が 10 億ドルの間違いと言われていることは知っていますが、それは逆に見えるものではなく、オプションの型 (Haskell のMaybe のような) によって解決されます。
オプション タイプにより、これが null になる可能性があることがわかるため、注意して続行してください。 ?のように事実を隠すことはありません。
そうは言っても、「?」という概念がなくなるのは嬉しいことです。 null のチェックに関しては単に無駄なことをしているだけであり、未定義に関しては単に設計が悪いだけです。
良いパターン、つまりバグを減らすパターンは何ですか?.?
以上が私があなたの後輩であるように説明してください: なぜ ? なのか。良い?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。