Saya telah menulis JS hampir dua dekad pada ketika ini, tetapi saya masih tidak faham mengapa ?. bukanlah permulaan anti-corak, terutamanya untuk panggilan kaedah.
Saya melihat siaran itu
Dan satu yang menarik perhatian saya ialah nombor 2 "Perangkaian Pilihan dengan Panggilan Fungsi":
const user = { getName: () => 'Alice', }; console.log(user.getName?.()); // Alice console.log(user.getAge?.()); // undefined
Yang menjerit "Saya tidak tahu antara muka objek saya, dan saya tidak kisah."
Anda pastinya harus mengambil berat tentang antara muka kepada objek anda.
Saya hampir dapat melihat hujah untuk keteguhan jika API perpustakaan berubah, tetapi tidak, jika anda menggunakan pustaka, anda tahu antara muka kepada objek, betulkan kod anda.
Ia kelihatan seperti penarik pepijat yang besar.
Anda tidak pernah mahu sesuatu yang tidak ditentukan. Atau adakah saya terlepas memo tentang itu?
Dan itu berganda untuk kaedah. Jika dua objek tidak mempunyai kelakuan yang sama, mereka perlu dianggap sebagai jenis yang berbeza, bukan hanya mengangkat bahu dan berkata "tidak apa-apa".
Adakah ujian untuk null haram hari ini? Saya tahu null telah dipanggil kesilapan bilion dolar, tetapi itu diselesaikan dengan jenis pilihan (seperti Mungkin dalam Haskell), bukan yang kelihatan seperti songsang.
Jenis pilihan memberitahu anda bahawa ini adalah sesuatu yang mungkin batal, jadi teruskan dengan berhati-hati. Ia tidak menyembunyikan fakta, seperti ?. memang.
Dengan semua yang dikatakan, saya gembira untuk tidak menyalahgunakan tanggapan bahawa ?. hanya menendang tin ke jalan apabila ia datang untuk menyemak nol, atau hanya reka bentuk yang buruk apabila ia datang kepada undefined.
Apakah corak yang baik, iaitu yang mengurangkan pepijat, yang boleh anda gunakan ?.?
Atas ialah kandungan terperinci Terangkan seperti saya junior awak: kenapa ?. baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!