recherche

Maison  >  Questions et réponses  >  le corps du texte

Vérification du type de valeur nulle

<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粉896751037P粉896751037519 Il y a quelques jours535

répondre à tous(1)je répondrai

  • P粉267791326

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

    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.

    répondre
    0
  • Annulerrépondre