Skip to main content

noImportAssign (since v0.9.0)

This rule is recommended by Rome.

Disallow assigning to imported bindings

Examples

Invalid

import x from "y";
x = 1;
error[js/noImportAssign]: The imported variable x is read-only
   js/noImportAssign.js:2:1
  
1  import x from "y";
          - The variable is imported here
2  x = 1;
   ^

=  note: Use a local variable instead of reassigning an import.

import y from "y";
[y] = 1;
error[js/noImportAssign]: The imported variable y is read-only
   js/noImportAssign.js:2:2
  
1  import y from "y";
          - The variable is imported here
2  [y] = 1;
    ^

=  note: Use a local variable instead of reassigning an import.

import z from "y";
({ z } = 1); /// ```
```js,expect_diagnostic
import a from "y";
[...a] = 1;
error: unterminated template literal
   js/noImportAssign.js:3:4
    
3    ```js,expect_diagnostic
   ^
4   import a from "y";
5   [...a] = 1;
6   
   ^

import b from "y";
({ ...b } = 1);
error[js/noImportAssign]: The imported variable b is read-only
   js/noImportAssign.js:2:7
  
1  import b from "y";
          - The variable is imported here
2  ({ ...b } = 1);
         ^

=  note: Use a local variable instead of reassigning an import.

import c from "y";
for (c in y) {};
error[js/noImportAssign]: The imported variable c is read-only
   js/noImportAssign.js:2:6
  
1  import c from "y";
          - The variable is imported here
2  for (c in y) {};
        ^

=  note: Use a local variable instead of reassigning an import.

import d from "y";
d += 1;
error[js/noImportAssign]: The imported variable d is read-only
   js/noImportAssign.js:2:1
  
1  import d from "y";
          - The variable is imported here
2  d += 1;
   ^

=  note: Use a local variable instead of reassigning an import.

import * as e from "y";
e = 1;
error[js/noImportAssign]: The imported variable e is read-only
   js/noImportAssign.js:2:1
  
1  import * as e from "y";
               - The variable is imported here
2  e = 1;
   ^

=  note: Use a local variable instead of reassigning an import.