Rumah > Artikel > hujung hadapan web > Mempermudahkan Jenis Kesatuan dan Tatasusunan dalam TypeScript
Apabila bekerja dengan TypeScript, anda mungkin mendapati diri anda perlu menentukan jenis kesatuan dan tatasusunan yang mengandungi semua kemungkinan nilai jenis itu. Pendekatan biasa ialah menulis sesuatu seperti ini:
type Taste = 'しょうゆ' | 'みそ' | 'とんこつ'; const tastes = ['しょうゆ', 'みそ', 'とんこつ'];
Pada pandangan pertama, ini kelihatan baik. Walau bagaimanapun, terdapat masalah tersembunyi di sini: setiap kali anda ingin menukar atau menambah pilihan, anda perlu mengemas kini kedua-dua jenis gabungan Rasa dan tatasusunan rasa. Pertindihan usaha ini boleh membawa kepada kesilapan dan menjadikan pengekalan kod lebih membosankan.
Nasib baik, ada cara untuk memudahkan perkara ini dengan mengurangkan lebihan. Dengan menggunakan penegasan sebagai const dan typeof dalam TypeScript, anda boleh menyatukan definisi kedua-dua jenis kesatuan dan tatasusunan ke dalam satu tempat. Begini cara anda boleh memfaktorkan semula kod di atas:
const tastes = ['しょうゆ', 'みそ', 'とんこつ'] as const; type Taste = (typeof tastes)[number];
Pendekatan ini mempunyai beberapa faedah:
Sumber Kebenaran Tunggal:
Anda hanya mentakrifkan senarai nilai sekali sahaja, dalam tatasusunan citarasa. Jenis Rasa diperoleh secara automatik daripada tatasusunan ini, jadi jika anda perlu mengemas kini senarai, anda hanya perlu melakukannya di satu tempat.
Jenis Keselamatan:
Dengan menggunakan sebagai const, TypeScript menganggap tatasusunan citarasa sebagai tuple dengan jenis literal dan bukannya tatasusunan rentetan sahaja. Ini memastikan bahawa jenis Rasa kekal tepat dan sejajar dengan nilai dalam citarasa.
Penyelenggaraan yang Lebih Baik:
Memandangkan jenis Rasa dijana daripada tatasusunan, tiada risiko ketidakpadanan antara jenis dan nilai sebenar. Ini mengurangkan potensi pepijat dan menjadikan kod lebih mudah untuk diselenggara.
Kini, apabila anda menggunakan jenis Rasa dalam kod anda, ia dijamin sepadan dengan nilai dalam tatasusunan citarasa:
function describeTaste(taste: Taste): string { switch (taste) { case 'しょうゆ': return 'Savory soy sauce flavor.'; case 'みそ': return 'Rich miso flavor.'; case 'とんこつ': return 'Creamy pork broth flavor.'; default: return 'Unknown taste'; } } const allTastes: Taste[] = tastes; // Safe, because they match the type!
Corak ini bukan sahaja meningkatkan kebolehbacaan kod anda tetapi juga memastikan ia kurang terdedah kepada ralat, terutamanya apabila berurusan dengan berbilang nilai yang perlu disegerakkan.
Dengan menerima strategi ini, anda boleh menjadikan kod TypeScript anda lebih boleh diselenggara dan berskala. Ini amat berguna apabila anda berurusan dengan set nilai yang besar atau apabila pangkalan kod anda berkembang dari semasa ke semasa.
Atas ialah kandungan terperinci Mempermudahkan Jenis Kesatuan dan Tatasusunan dalam TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!