Rumah  >  Soal Jawab  >  teks badan

Pemeriksaan jenis nilai nol

<p>Saya baru sahaja menulis kaedah dalam perkhidmatan, tetapi saya menghadapi masalah di mana jenis membayangkan bahawa saya mungkin mengembalikan nilai nol, walaupun saya telah melakukan semakan nol dalam blok pernyataan if. </p> <pre class="brush:php;toolbar:false;">public async getUserById(id: string): Janji<UserEntity> const user = this.userRepository.getById(id); // mengembalikan <UserEntity |. jika (!pengguna) { // menyemak nol buang NotFoundUser baru(`Tidak ditemui pengguna`); } // Taip 'UserEntity |. tidak boleh ditugaskan untuk menaip 'UserEntity'. // Taip 'null' tidak boleh diberikan untuk menaip 'UserEntity'. kembali pengguna; }</pre> <p>Saya ingin membuang pengecualian jika pembolehubah pengguna kosong dan mengembalikan UserEntity jika tidak. <br /><br />Jika saya meletakkan dua tanda seru di sana, masalahnya telah selesai. </p><p><br /></p> <pre class="brush:php;toolbar:false;">if (!!pengguna) { // menyemak nol buang NotFoundUser baru(`Tidak ditemui pengguna`); }</pre> <p>Tetapi jika saya menaip !!null dalam konsol, ia akan kembali palsu, jadi dalam kes ini saya tidak pernah mengalami situasi di mana pengecualian dilemparkan. Mengapakah tingkah laku ini berlaku? </p>
P粉896751037P粉896751037465 hari yang lalu494

membalas semua(1)saya akan balas

  • P粉267791326

    P粉2677913262023-08-04 10:36:33

    Oleh kerana !! adalah serupa dengan Boolean, jadi dalam baris kod ini, anda melakukan sesuatu yang serupa dengan Boolean(null), jadi anda akan mendapat false, kerana dalam boolean, null adalah false. Anda boleh menggunakan pengguna === null untuk menyemak sama ada ia adalah null.

    balas
    0
  • Batalbalas