cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memahami persimpangan TypeScript melalui keyof

<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粉451614834P粉451614834437 hari yang lalu433

membalas semua(1)saya akan balas

  • P粉267791326

    P粉2677913262023-09-06 20:12:26

    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"
    }

    balas
    0
  • Batalbalas