close

strict

Configuration

rslint.config.ts
import { defineConfig, js } from '@rslint/core';

export default defineConfig([
  js.configs.recommended,
  {
    rules: {
      'strict': 'error',
    },
  },
]);

Rule Details

Require or disallow strict mode directives ("use strict").

The rule supports four options:

  • "safe" (default) — equivalent to "function" for script files; module files always use "module" semantics.
  • "never" — disallows all strict mode directives.
  • "global" — requires exactly one strict directive in global scope and disallows all other directives.
  • "function" — requires one strict directive in each top-level function and disallows directives in the global scope or in nested functions / class bodies.

When the file is an ES module (detected via top-level import / export), the rule always uses module semantics: every "use strict" directive is reported as unnecessary and removed by autofix.

Examples

"never"

{ "strict": ["error", "never"] }

Examples of incorrect code:

"use strict";
function foo() {}
function foo() {
    "use strict";
}

Examples of correct code:

function foo() {}

"global"

{ "strict": ["error", "global"] }

Examples of incorrect code:

function foo() {}
function foo() {
    "use strict";
}
"use strict";
function foo() {
    "use strict";
}

Examples of correct code:

"use strict";
function foo() {}

"function"

{ "strict": ["error", "function"] }

Examples of incorrect code:

"use strict";
function foo() {}
function foo() {}
(function() {
    function bar() {
        "use strict";
    }
}());

Examples of correct code:

function foo() {
    "use strict";
}

(function() {
    "use strict";
    function bar() {}
    function baz(a = 1) {}
}());

const foo2 = (function() {
    "use strict";
    return function foo(a = 1) {};
}());

Original Documentation