Skip to content

selfAssignments

Reports self-assignments which have no effect and are likely errors.

✅ This rule is included in the ts logical and logicalStrict presets.

Self-assignments where a variable is assigned to itself have no effect and typically indicate an incomplete refactoring or a copy-paste error. These assignments serve no purpose and should be removed or corrected to assign the intended value.

let value: string
value
=
let value: string
value
;
let count: number
count
&&=
let count: number
count
;
let flags: Record<string, unknown>
flags
.
unknown
value
||=
let flags: Record<string, unknown>
flags
.
unknown
value
;
let data: string
data
??=
let data: never
data
;

This rule is not configurable.

There are rarely valid reasons to use self-assignment. In cases where you need to trigger getters/setters or proxies, consider adding a comment explaining the intentional self-assignment.

Made with ❤️‍🔥 around the world by the Flint team and contributors.