0

I'm on VSCode with ESLint installed and I tried to type that expression to get a "true" or "false" output

const result = goodGuys.includes(guy) ?

but it didn't worked and with a quick fix (from ESLint that I don't understand, so here I am lol) of removing the "?" and adding two exclamation marks at the beginning, it work just well.

const result = !!goodGuys.includes(guy);

Can someone explain this to me please? Thx

Jack Bashford
  • 43,180
  • 11
  • 50
  • 79

1 Answers1

0

That's just an ESLint thing. includes returns a Boolean, so it actually functions like that in code. ESLint sometimes wants to enforce Boolean rules, so !! does that for you. It works by using double negation - once to get an inverted Boolean, then again to un-invert it, giving you the Boolean representation of your expression. It's basically the same as this:

const result = Boolean(goodGuys.includes(guy));
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79