Bonjour
D'après ce que je comprends, la méthode isSelected doit retourner non seulement le produit courant mais il faut qu'il soit identique à l'attribut product.sku.
Justement non, si vous regarder la signature de la fonction
isSelected(product: Product): boolean {
Vous avez 2 informations :
1) la fonction nécessite en paramètre d'entrée un objet de type Product
2) la fonction retourne un booléen
Après, pour mieux comprendre ce que fait la fonction :
1 2 3
| if (!product || !this.currentProduct) {
return false;
} |
la fonction retourne la valeur false si l'une des 2 conditions est remplie (le double pipe || est l'opérateur ou) :
- si le paramètre de la fonction n'est pas instancié (à cause de !product )
- si this.currentProduct, qui est l'attribut de la classe courante (ie, de la classe Product) n'est pas instancié (à cause de !this.currentProduct)
Si les 2 conditions ne sont pas remplies, ie, si product et this.currentProduct sont tous les 2 instanciés, on exécute le code suivant :
return product.sku === this.currentProduct.sku;
L'opérateur triple égal est plus stricte que l'opérateur double égal :
- l'opérateur triple égal : retourne vrai si les 2 objets qu'on compare sont égaux et de même type (ex: 1===1 retourne vrai, 1==="1" retourne faux)
- l'opérateur double égal : retourne vrai si les 2 objets qu'on compare sont égaux, indépendamment de leurs types (ex: 1=="1" retourne vrai)
Partager