Vérification du type de valeur nulle
P粉896751037
P粉896751037 2023-08-03 11:34:29
0
1
450
<p>Je viens d'écrire une méthode dans un service, mais je rencontre un problème où le type laisse entendre que je pourrais renvoyer une valeur nulle, même si j'ai effectué une vérification nulle dans le bloc d'instruction if. </p> <pre class="brush:php;toolbar:false;">public async getUserById(id: string): Promise<UserEntity> const user = this.userRepository.getById(id); // renvoie <UserEntity | null> if (!user) { // vérification de null lancer un nouveau NotFoundUser(`Utilisateur introuvable`); } // Le type 'UserEntity | null' n'est pas attribuable au type 'UserEntity'. // Le type 'null' n'est pas attribuable au type 'UserEntity'. revenir utilisateur ; }</pré> <p>Je souhaite lever une exception si la variable utilisateur est vide et renvoyer l'entité utilisateur sinon. <br /><br />Si j'y mets deux points d'exclamation, le problème est résolu. </p><p><br /></p> <pre class="brush:php;toolbar:false;">if (!!user) { // vérification de null lancer un nouveau NotFoundUser(`Utilisateur introuvable`); }</pré> <p>Mais si je tape !!null dans la console, cela retournera false, donc dans ce cas, je ne me retrouve jamais dans une situation où une exception est levée. Pourquoi ce comportement se produit-il ? </p>
P粉896751037
P粉896751037

répondre à tous(1)
P粉267791326

Parce que !! est similaire à Boolean, donc dans cette ligne de code, vous faites quelque chose de similaire à Boolean(null), donc vous obtiendrez false, car en booléen, null est faux. Vous pouvez utiliser user === null pour vérifier s'il est nul.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!