Bug 1870205 Comment 1 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

I forgot to emphasize, setting some or even all of the flags to false isn't equivalent to turning off the rule completely.  This still reports errors for using `foo` and `Baz`, though obviously not for `bar` because that's always safe:

```/* eslint no-use-before-define: ["error", { variables: false, functions: false, classes: false } ] */

alert(foo + bar + Baz);        // 2 errors

var foo = 1;

function bar() {}

class Baz {}
```

[Playground link](https://eslint.org/play/#eyJ0ZXh0IjoiLyogZXNsaW50IG5vLXVzZS1iZWZvcmUtZGVmaW5lOiBbXCJlcnJvclwiLCB7IHZhcmlhYmxlczogZmFsc2UsIGZ1bmN0aW9uczogZmFsc2UsIGNsYXNzZXM6IGZhbHNlIH0gXSAqL1xuXG5hbGVydChmb28gKyBiYXIgKyBCYXopOyAgICAgICAgLy8gMiBlcnJvcnNcblxudmFyIGZvbyA9IDE7XG5cbmZ1bmN0aW9uIGJhcigpIHt9XG5cbmNsYXNzIEJheiB7fVxuIiwib3B0aW9ucyI6eyJlbnYiOnsiYnJvd3NlciI6dHJ1ZX0sInJ1bGVzIjp7fSwicGFyc2VyT3B0aW9ucyI6eyJlY21hRmVhdHVyZXMiOnt9LCJlY21hVmVyc2lvbiI6MjAxNSwic291cmNlVHlwZSI6InNjcmlwdCJ9fX0=).
I forgot to emphasize, setting some or even all of the flags to false isn't equivalent to turning off the rule completely.  This still reports errors for using `foo` and `Baz`, though obviously not for `bar` because that's always safe:

```
/* eslint no-use-before-define: ["error", { variables: false, functions: false, classes: false } ] */

alert(foo + bar + Baz);        // 2 errors

var foo = 1;

function bar() {}

class Baz {}
```

[Playground link](https://eslint.org/play/#eyJ0ZXh0IjoiLyogZXNsaW50IG5vLXVzZS1iZWZvcmUtZGVmaW5lOiBbXCJlcnJvclwiLCB7IHZhcmlhYmxlczogZmFsc2UsIGZ1bmN0aW9uczogZmFsc2UsIGNsYXNzZXM6IGZhbHNlIH0gXSAqL1xuXG5hbGVydChmb28gKyBiYXIgKyBCYXopOyAgICAgICAgLy8gMiBlcnJvcnNcblxudmFyIGZvbyA9IDE7XG5cbmZ1bmN0aW9uIGJhcigpIHt9XG5cbmNsYXNzIEJheiB7fVxuIiwib3B0aW9ucyI6eyJlbnYiOnsiYnJvd3NlciI6dHJ1ZX0sInJ1bGVzIjp7fSwicGFyc2VyT3B0aW9ucyI6eyJlY21hRmVhdHVyZXMiOnt9LCJlY21hVmVyc2lvbiI6MjAxNSwic291cmNlVHlwZSI6InNjcmlwdCJ9fX0=).
I forgot to emphasize, setting some or even all of the flags to false isn't equivalent to turning off the rule completely.  This still reports errors for using `foo` and `Baz`, though obviously not for `bar` because that's always safe:

```
/* eslint no-use-before-define: ["error", { variables: false, functions: false, classes: false } ] */

alert(foo + bar() + new Baz());        // 2 errors

var foo = 1;

function bar() {}

class Baz {}
```

[Playground link](https://eslint.org/play/#eyJ0ZXh0IjoiLyogZXNsaW50IG5vLXVzZS1iZWZvcmUtZGVmaW5lOiBbXCJlcnJvclwiLCB7IHZhcmlhYmxlczogZmFsc2UsIGZ1bmN0aW9uczogZmFsc2UsIGNsYXNzZXM6IGZhbHNlIH0gXSAqL1xuXG5hbGVydChmb28gKyBiYXIoKSArIG5ldyBCYXooKSk7ICAgICAgICAvLyAyIGVycm9yc1xuXG52YXIgZm9vID0gMTtcblxuZnVuY3Rpb24gYmFyKCkge31cblxuY2xhc3MgQmF6IHt9XG4iLCJvcHRpb25zIjp7ImVudiI6eyJicm93c2VyIjp0cnVlfSwicnVsZXMiOnt9LCJwYXJzZXJPcHRpb25zIjp7ImVjbWFGZWF0dXJlcyI6e30sImVjbWFWZXJzaW9uIjoyMDE1LCJzb3VyY2VUeXBlIjoic2NyaXB0In19fQ==).

Back to Bug 1870205 Comment 1