Terangkan seperti saya junior awak: kenapa ?. baik?

Mary-Kate Olsen
Lepaskan: 2024-11-03 11:03:02
asal
340 orang telah melayarinya

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
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan