Skip to content

Commit f8628bc

Browse files
authoredMar 14, 2025··
docs(linter): Improve eslint-no-class-assign (#9779)
Add correctness examples to docs for the rule and format in line with #6050
1 parent 3945385 commit f8628bc

File tree

1 file changed

+53
-6
lines changed

1 file changed

+53
-6
lines changed
 

‎crates/oxc_linter/src/rules/eslint/no_class_assign.rs

+53-6
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,64 @@ pub struct NoClassAssign;
1717

1818
declare_oxc_lint!(
1919
/// ### What it does
20+
///
2021
/// Disallow reassigning class variables.
2122
///
2223
/// ### Why is this bad?
23-
/// `ClassDeclaration` creates a variable that can be re-assigned,
24-
/// but the re-assignment is a mistake in most cases.
2524
///
26-
/// ### Example
25+
/// `ClassDeclaration` creates a variable that can be re-assigned, but the re-assignment is a
26+
/// mistake in most cases.
27+
///
28+
/// ### Examples
29+
///
30+
/// Examples of **incorrect** code for this rule:
31+
/// ```javascript
32+
/// class A { }
33+
/// A = 0;
34+
/// ```
35+
///
36+
/// ```javascript
37+
/// A = 0;
38+
/// class A { }
39+
/// ```
40+
///
41+
/// ```javascript
42+
/// class A {
43+
/// b() {
44+
/// A = 0;
45+
/// }
46+
/// }
47+
/// ```
48+
///
49+
/// ```javascript
50+
/// let A = class A {
51+
/// b() {
52+
/// A = 0;
53+
/// // `let A` is shadowed by the class name.
54+
/// }
55+
/// }
56+
/// ```
57+
///
58+
/// Examples of **correct** code for this rule:
59+
/// ```javascript
60+
/// let A = class A { }
61+
/// A = 0; // A is a variable.
62+
/// ```
63+
///
64+
/// ```javascript
65+
/// let A = class {
66+
/// b() {
67+
/// A = 0; // A is a variable.
68+
/// }
69+
/// }
70+
/// ```
71+
///
2772
/// ```javascript
28-
/// class A {}
29-
/// A = 123;
30-
/// let a = new A() // Error
73+
/// class A {
74+
/// b(A) {
75+
/// A = 0; // A is a parameter.
76+
/// }
77+
/// }
3178
/// ```
3279
NoClassAssign,
3380
eslint,

0 commit comments

Comments
 (0)