Pemeriksaan jenis nilai nol
P粉896751037
P粉896751037 2023-08-03 11:34:29
0
1
509
<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粉896751037
P粉896751037

membalas semua(1)
P粉267791326

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan