Back to Biomejs

noRestrictedGlobals

src/content/docs/linter/rules/no-restricted-globals.mdx

latest3.3 KB
Original Source

import { Tabs, TabItem } from '@astrojs/starlight/components';

<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> ## Summary - Rule available since: `v1.0.0` - Diagnostic Category: [`lint/style/noRestrictedGlobals`](/reference/diagnostics#diagnostic-category) - This rule isn't recommended, so you need to enable it. - This rule doesn't have a fix. - The default severity of this rule is [**warning**](/reference/diagnostics#warning). - Sources: - Same as [`no-restricted-globals`](https://eslint.org/docs/latest/rules/no-restricted-globals)

How to configure

json
{
	"linter": {
		"rules": {
			"style": {
				"noRestrictedGlobals": "error"
			}
		}
	}
}

Description

This rule allows you to specify global variable names that you don’t want to use in your application.

References to the global identifiers error and event are always disallowed by this rule.

Disallowing usage of specific global variables can be useful if you want to allow a set of global variables by enabling an environment but still want to disallow some of those.

Examples

Invalid

js
console.log(event)
<pre class="language-text"><code class="language-text">code-block.js:1:13 <a href="https://biomejs.dev/linter/rules/no-restricted-globals">lint/style/noRestrictedGlobals</a> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <strong><span style="color: Orange;">⚠</span></strong> <span style="color: Orange;">Do not use the global variable </span><span style="color: Orange;"><strong>event</strong></span><span style="color: Orange;">.</span> <strong><span style="color: Tomato;">&gt;</span></strong> <strong>1 │ </strong>console.log(event) <strong> │ </strong> <strong><span style="color: Tomato;">^</span></strong><strong><span style="color: Tomato;">^</span></strong><strong><span style="color: Tomato;">^</span></strong><strong><span style="color: Tomato;">^</span></strong><strong><span style="color: Tomato;">^</span></strong> <strong>2 │ </strong> <strong><span style="color: lightgreen;">ℹ</span></strong> <span style="color: lightgreen;">Use a local variable instead.</span> </code></pre>

Valid

js
function f(event) {
    console.log(event)
}

Options

Use the options to specify additional globals that you want to restrict in your source code.

json
{
	"linter": {
		"rules": {
			"style": {
				"noRestrictedGlobals": {
					"options": {
						"deniedGlobals": {
							"$": "jQuery is not allowed. Use native DOM manipulation instead.",
							"MooTools": "Do not use MooTools, use MeowTools instead."
						}
					}
				}
			}
		}
	}
}

In the example above, the rule will emit a diagnostics if tried to use $ or MooTools without creating a local variable.

</TabItem> </Tabs>