Bagaimana untuk memahami persimpangan TypeScript melalui keyof
P粉451614834
P粉451614834 2023-09-05 22:37:33
0
1
448
<p><pre class="brush:php;toolbar:false;">interface Person { nama: rentetan; } antara muka Jangka hayat { tarikh lahir; kematian: Tarikh; } jenis PersonSpan = Orang & jenis K = keyof PersonSpan; // jenis K = "nama" biarkan prop: K = "nama"; // ok let obj: PersonSpan = { // kompilasi ralat, hilang sifat kelahiran dan kematian nama: "John Smith" }</pre> <p>Jika saya ingin memahami jenis persimpangan melalui <kod>kunci</kod>: </p> <p>Kunci<kod>{ nama: "John Smith" }</kod> bagi contoh objek ini ialah <kod>nama</kod>, yang sepadan dengan <kod>kunci PersonSpan</kod> , iaitu <kod> "nama" |. "kelahiran" |. "Kelahiran" |. "Kematian" = "Nama"; <p>Jadi, selagi objek mempunyai salah satu daripada tiga sifat ini, ia sepatutnya sah, mengapa ia masih perlu mempunyai semua sifat yang boleh diserahkan kepada <kod>PersonSpan</code>? </p>
P粉451614834
P粉451614834

membalas semua(1)
P粉267791326

Dalam TypeScript, apabila anda mentakrifkan jenis menggunakan persilangan & dua atau lebih jenis, jenis yang terhasil akan mempunyai semua sifat setiap jenis persimpangan. Dalam kes ini, PersonSpan ditakrifkan sebagai persilangan Person dan Jangka Hayat, jadi objek jenis PersonSpan mesti mempunyai semua sifat Person dan Jangka Hayat. Walaupun keyof PersonSpan menghasilkan "nama" |. "kelahiran" |. set, anda boleh mengakses sifat ini menggunakan kekunci "nama" pada objek jenis PersonSpan, "kelahiran" atau "kematian" yang mungkin juga jenis Separa yang anda cari, yang menjadikan semua prop sebagai pilihan

let obj: Partial<PersonSpan> = {  
   name: "John Smith"
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan