亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
2. Menggunakan generik dalam fungsi dan antara muka
Contoh: Pembungkus tindak balas API generik
3. Mengekang generik dengan extends
4. Pelbagai jenis parameter dan jenis lalai
5. Komponen yang boleh diguna semula dalam amalan
Rumah hujung hadapan web tutorial js Membuka kebolehgunaan semula dengan generik jenis

Membuka kebolehgunaan semula dengan generik jenis

Sep 16, 2025 am 03:14 AM
Generik

Generik TypeScript membolehkan kod yang boleh diguna semula, jenis selamat dengan membenarkan fungsi, antara muka, dan komponen berfungsi dengan pelbagai jenis semasa memelihara maklumat jenis. 1. Generik menggunakan pembolehubah jenis seperti T untuk mewakili jenis pemegang tempat, seperti yang dilihat dalam fungsi identiti, memelihara keselamatan jenis tidak seperti mana -mana. 2. 3. Menggunakan Extends, generik boleh dikekang untuk memastikan sifat yang diperlukan, seperti t meluas {id: nombor} untuk objek dengan medan ID. 4. Pelbagai jenis parameter (contohnya, k, v, r) menyokong transformasi kompleks seperti MapObject, dan jenis lalai (contohnya, t = tidak diketahui) meningkatkan kebolehgunaan tanpa mengorbankan fleksibiliti. 5. Generik digunakan secara meluas dalam fungsi utiliti, cangkuk reaksi seperti USEFetch (), dan pengurusan negeri untuk mengelakkan pertindihan dan memastikan keselamatan masa kompilasi, menjadikannya penting untuk kod yang boleh diselaraskan, boleh dikekalkan apabila logik mengulangi pelbagai jenis.

Membuka kebolehgunaan semula dengan generik jenis

Generik TypeScript adalah salah satu ciri yang paling kuat untuk menulis kod yang boleh diguna semula, jenis-selamat. Mereka membolehkan anda membuat komponen, fungsi, atau kelas yang bekerja lebih dari pelbagai jenis dan bukannya satu sama dengan maklumat jenis pengorbanan. Ini membuka fleksibiliti sambil mengekalkan menaip yang kuat, yang penting dalam aplikasi berskala besar.

Membuka kebolehgunaan semula dengan generik jenis

Mari kita pecahkan bagaimana generik membantu anda membina lebih banyak kod yang boleh diguna semula dan bila menggunakannya.


1. Apa itu generik? (Dan mengapa anda memerlukannya)

Pada teras mereka, generik membolehkan anda menulis fungsi atau struktur data yang boleh mengendalikan jenis yang berbeza semasa mengekalkan keselamatan jenis.

Membuka kebolehgunaan semula dengan generik jenis

Sebagai contoh, bayangkan fungsi identiti mudah:

 identiti fungsi (arg: mana -mana): mana -mana {
  kembali arg;
}

Ini berfungsi -tetapi ia membuang maklumat jenis. Dengan generik, anda memeliharanya:

Membuka kebolehgunaan semula dengan generik jenis
 Fungsi Identiti <T> (arg: t): t {
  kembali arg;
}

Di sini, T adalah pemboleh ubah jenis -pemegang tempat untuk jenis apa pun yang akan digunakan apabila fungsi dipanggil.

Anda boleh menyebutnya seperti ini:

 const num = identiti (42); // Jenis: Nombor
const str = identiti ("hello"); // Jenis: String

TypeScript T secara automatik, jadi anda tidak perlu menulis identity<number>(42) .

Ini mungkin kelihatan remeh, tetapi ia menjadi kritikal apabila membina utiliti seperti cache, API, atau pengurus negeri di mana jenis berbeza tetapi tingkah laku tetap konsisten.


2. Menggunakan generik dalam fungsi dan antara muka

Generik benar -benar bersinar apabila melengkapkan logik merentasi pelbagai jenis.

Contoh: Pembungkus tindak balas API generik

Katakan anda mengendalikan respons API dengan bentuk yang konsisten:

 Antara muka Apiresponse <T> {
  Data: t;
  Status: Nombor;
  Mesej?: String;
}

Sekarang anda boleh menggunakan semula antara muka ini di titik akhir yang berbeza:

 const userresponse: apiresponse <user> = {
  data: {id: 1, nama: "Alice"},
  Status: 200,
};

const postsresponse: apiresponse <post []> = {
  data: [{id: 1, tajuk: "hello"}],
  Status: 200,
};

Komponen atau perkhidmatan anda kini boleh mengendalikan ApiResponse<T> tanpa mengetahui bentuk T yang tepat, namun masih menawarkan pemeriksaan autocomplete dan jenis penuh.


3. Mengekang generik dengan extends

Kadang -kadang anda mahukan fleksibiliti -tetapi tidak terlalu banyak . Anda boleh menyekat jenis yang diterima generik menggunakan extends .

Sebagai contoh, katakan anda mahu fungsi yang mengekstrak harta dari objek, tetapi hanya jika ia mempunyai medan id :

 fungsi logid <t meluas {id: nombor}> (item: t): void {
  console.log (item.id);
}

Sekarang ini memastikan sebarang hujah yang diluluskan mesti mempunyai id jenis number :

 logID ({id: 123, nama: "bob"}); // ? ok
logID ({name: "Charlie"}); // ? Ralat: hilang &#39;id&#39;

Corak ini adalah perkara biasa dalam fungsi utiliti, pengendali bentuk, atau serializers di mana anda memerlukan jaminan struktur.


4. Pelbagai jenis parameter dan jenis lalai

Anda tidak terhad kepada satu jenis generik.

 fungsi MapObject <k, v, r> (
  OBJ: Rekod <k, v>,
  fn: (nilai: v) => r
): Rekod <k, r> {
  kembali objek.Fromentries (
    Object.entries (obj) .map (([kunci, nilai]) => [kunci, fn (nilai)])
  ) sebagai rekod <k, r>;
}

Juga, anda boleh menyediakan jenis lalai untuk ergonomik yang lebih baik:

 antara muka queryResult <t = unknown> {
  Data: t;
  Memuatkan: Boolean;
}

Sekarang QueryResult mungkir kepada unknown jika tiada jenis ditentukan, tetapi tetap fleksibel.


5. Komponen yang boleh diguna semula dalam amalan

Generik sangat berguna dalam:

  • Fungsi utiliti (misalnya, pick , omit , deepClone )
  • Pengurusan Negeri (contohnya, tindakan, pengurangan dengan jenis muatan)
  • Komponen React (misalnya, bentuk, modal yang menerima prop generik)
  • Cangkuk pengambilan data (misalnya, useFetch<T>() )

Contoh: cangkuk reaksi generik

 fungsi useFetch <t> (url: string): {data: t | null; Memuatkan: Boolean} {
  const [data, setData] = useState <t | null> (null);
  const [loading, setloading] = useState (true);

  useeffect (() => {
    Ambil (URL)
      .then (r => r.json ())
      .talu (data => setData (data sebagai t))
      .finally (() => setloading (false));
  }, [url]);

  kembali {data, memuatkan};
}

// Penggunaan
const {data} = useFetch <user []> ("/api/pengguna");

Di sini, cangkuk yang sama dengan selamat mengendalikan sebarang jenis tindak balas yang diharapkan.


Generik mungkin merasa abstrak pada mulanya, tetapi mereka hanya cara TypeScript untuk membiarkan anda menulis kod masa depan . Sebaik sahaja anda mula menggunakannya, anda akan mendapati diri anda menduplikasi kurang, refactoring dengan keyakinan, dan menangkap bug pada masa penyusunan.

Pada asasnya: jika anda mengulangi logik yang sama untuk pelbagai jenis, sudah tiba masanya untuk mencapai generik.

Atas ialah kandungan terperinci Membuka kebolehgunaan semula dengan generik jenis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Adakah fungsi generik menyelesaikan masalah jenis parameter variadik di Golang? Adakah fungsi generik menyelesaikan masalah jenis parameter variadik di Golang? Apr 16, 2024 pm 06:12 PM

Fungsi generik dalam Go menyelesaikan masalah jenis variadik: fungsi generik membenarkan parameter jenis ditentukan semasa masa jalan. Ini memungkinkan untuk menulis fungsi yang boleh mengendalikan hujah pelbagai jenis. Sebagai contoh, fungsi Max ialah fungsi generik yang menerima dua parameter setanding dan mengembalikan nilai yang lebih besar. Dengan menggunakan fungsi generik, kita boleh menulis kod yang lebih fleksibel dan umum yang boleh mengendalikan pelbagai jenis parameter.

Senario aplikasi khusus generik dalam golang Senario aplikasi khusus generik dalam golang May 04, 2024 am 11:45 AM

Senario aplikasi generik dalam Go: Operasi pengumpulan: Buat operasi pengumpulan yang sesuai untuk sebarang jenis, seperti penapisan. Struktur Data: Tulis struktur data tujuan umum seperti baris gilir, tindanan dan peta untuk menyimpan dan memanipulasi pelbagai jenis data. Algoritma: Tulis algoritma tujuan umum seperti pengisihan, carian dan pengurangan yang boleh mengendalikan pelbagai jenis data.

Apakah kesan generik Golang pada tandatangan dan parameter fungsi? Apakah kesan generik Golang pada tandatangan dan parameter fungsi? Apr 17, 2024 am 08:39 AM

Kesan generik pada tandatangan dan parameter fungsi Go termasuk: Parameter jenis: Tandatangan fungsi boleh mengandungi parameter jenis, menyatakan jenis yang boleh digunakan oleh fungsi. Kekangan jenis: Parameter jenis boleh mempunyai kekangan yang menentukan syarat yang mesti dipenuhi. Inferens jenis parameter: Pengkompil boleh membuat kesimpulan jenis parameter jenis yang tidak ditentukan. Menentukan jenis: Jenis parameter boleh dinyatakan secara eksplisit untuk memanggil fungsi generik. Ini meningkatkan kebolehgunaan semula dan fleksibiliti kod, membolehkan anda menulis fungsi dan jenis yang boleh digunakan dengan berbilang jenis.

Bagaimanakah jenis enum Java berfungsi dengan generik? Bagaimanakah jenis enum Java berfungsi dengan generik? May 04, 2024 am 08:36 AM

Gabungan jenis penghitungan dan generik dalam Java: Apabila mengisytiharkan penghitungan dengan generik, anda perlu menambah kurungan sudut, dan T ialah parameter jenis. Apabila membuat kelas generik, anda juga perlu menambah kurungan sudut, T ialah parameter jenis yang boleh menyimpan sebarang jenis. Gabungan ini meningkatkan fleksibiliti kod, keselamatan jenis dan memudahkan kod.

Apakah sempadan atas dan bawah generik fungsi Java? bagaimana nak guna? Apakah sempadan atas dan bawah generik fungsi Java? bagaimana nak guna? Apr 26, 2024 am 11:45 AM

Generik fungsi Java membenarkan menetapkan sempadan atas dan bawah. Extends menentukan bahawa jenis data yang diterima atau dikembalikan oleh fungsi mestilah subjenis daripada jenis yang ditentukan, mis. Sempadan bawah (super) menentukan bahawa jenis data yang diterima atau dikembalikan oleh fungsi mestilah superjenis jenis yang ditentukan, mis. Penggunaan generik meningkatkan kebolehgunaan semula kod dan keselamatan.

Apakah batasan fungsi generik di Golang? Apakah batasan fungsi generik di Golang? Apr 16, 2024 pm 05:12 PM

Had fungsi generik Go: hanya parameter jenis disokong, parameter nilai tidak disokong. Pengulangan fungsi tidak disokong. Parameter jenis tidak boleh ditentukan secara eksplisit, ia disimpulkan oleh pengkompil.

Perbandingan templat C++ dan generik? Perbandingan templat C++ dan generik? Jun 04, 2024 pm 04:24 PM

Perbezaan antara templat dan generik dalam C++: Templat: ditakrifkan pada masa penyusunan, ditaip dengan jelas, kecekapan tinggi dan saiz kod yang kecil. Generik: menaip masa jalan, antara muka abstrak, menyediakan fleksibiliti, kecekapan rendah.

Bagaimanakah kaedah generik Java melakukan inferens jenis? Bagaimanakah kaedah generik Java melakukan inferens jenis? May 01, 2024 pm 02:45 PM

Kaedah generik Java secara automatik menyimpulkan parameter jenis tanpa pengisytiharan eksplisit. Peraturan termasuk: 1. Gunakan pengisytiharan jenis eksplisit; 2. Buat kesimpulan jenis tunggal; Ini memudahkan kod, menjadikannya lebih mudah untuk menulis dan menggunakan kaedah generik.

See all articles