# Rslint ## Guide - [Getting Started](/guide/index.md): Rslint is a high-performance, ESLint-compatible linter for JavaScript and TypeScript. Powered by typescript-go, it delivers a faster drop-in experience with type-aware rules and optional type checking in the same run. - [VSCode Extension](/guide/vscode-extension.md): Install the official extension from the VS Code Marketplace. It provides: Real-time diagnostics as you typeCode actions for auto-fixable rulesAuto-fix on save via source.fixAll.rslintMulti-workspace support The extension works out of the box — it uses the built-in rslint binary and automatically picks up your rslint.config.ts. - [Type Checking](/guide/type-checking.md): Rslint runs TypeScript semantic type-check alongside or instead of lint rules — a drop-in replacement for tsc --noEmit in CI. --type-check — lint rules and type-check, in one pass.--type-check-only — type-check only; lint phase is skipped entirely. - [ESLint Plugin Compatibility](/guide/eslint-plugins.md): rslint can run community ESLint plugins' rules alongside its own native rules. Plugin diagnostics merge into the same report, and it works the same way in the CLI and the VS Code extension. - [Inline Directives](/guide/inline-directives.md): Rslint supports inline comments to disable or enable rules in source code. Both rslint- and eslint- prefixed directives are supported and fully equivalent. - [CLI Reference](/guide/cli.md) - [Node.js API](/guide/node-api.md): The Node.js API lets you run rslint programmatically — lint files or in-memory source from a script, an editor integration, or a build tool. Its surface is aligned with ESLint's v10 API shape, so most ESLint API code ports over with minimal changes. All config resolution (override config, config-file selection, discovery, normalization) happens in JavaScript; rslint's engine receives only the final resolved config object and never reads config from disk. - [Output Formats](/guide/output-formats.md): Use the --format flag to control how diagnostics are rendered. - [CI Integration](/guide/ci-integration.md) - [Environment Variables](/guide/environment-variables.md): Rslint respects the following environment variables: CLI flags --no-color and --force-color take precedence over environment variables. ## Configuration - [Configuration](/config/index.md): Rslint uses a flat config format (an array of config entries), aligned with ESLint v10. JS/TS configuration files are the recommended approach. - [Rules & Presets](/config/rules-and-presets.md) - [Ignoring Files](/config/ignoring-files.md) ## Rules - [Rules](/rules/index.md) - [accessor-pairs](/rules/eslint/accessor-pairs.md) - [array-callback-return](/rules/eslint/array-callback-return.md) - [arrow-body-style](/rules/eslint/arrow-body-style.md) - [complexity](/rules/eslint/complexity.md) - [constructor-super](/rules/eslint/constructor-super.md) - [curly](/rules/eslint/curly.md) - [default-case](/rules/eslint/default-case.md) - [default-case-last](/rules/eslint/default-case-last.md) - [eqeqeq](/rules/eslint/eqeqeq.md) - [for-direction](/rules/eslint/for-direction.md) - [getter-return](/rules/eslint/getter-return.md) - [guard-for-in](/rules/eslint/guard-for-in.md) - [max-depth](/rules/eslint/max-depth.md) - [max-lines](/rules/eslint/max-lines.md) - [max-lines-per-function](/rules/eslint/max-lines-per-function.md) - [max-nested-callbacks](/rules/eslint/max-nested-callbacks.md) - [no-alert](/rules/eslint/no-alert.md) - [no-async-promise-executor](/rules/eslint/no-async-promise-executor.md) - [no-await-in-loop](/rules/eslint/no-await-in-loop.md) - [no-bitwise](/rules/eslint/no-bitwise.md) - [no-caller](/rules/eslint/no-caller.md) - [no-case-declarations](/rules/eslint/no-case-declarations.md) - [no-class-assign](/rules/eslint/no-class-assign.md) - [no-compare-neg-zero](/rules/eslint/no-compare-neg-zero.md) - [no-cond-assign](/rules/eslint/no-cond-assign.md) - [no-console](/rules/eslint/no-console.md) - [no-const-assign](/rules/eslint/no-const-assign.md) - [no-constant-binary-expression](/rules/eslint/no-constant-binary-expression.md) - [no-constant-condition](/rules/eslint/no-constant-condition.md) - [no-constructor-return](/rules/eslint/no-constructor-return.md) - [no-control-regex](/rules/eslint/no-control-regex.md) - [no-debugger](/rules/eslint/no-debugger.md) - [no-delete-var](/rules/eslint/no-delete-var.md) - [no-dupe-args](/rules/eslint/no-dupe-args.md) - [no-dupe-else-if](/rules/eslint/no-dupe-else-if.md) - [no-dupe-keys](/rules/eslint/no-dupe-keys.md) - [no-duplicate-case](/rules/eslint/no-duplicate-case.md) - [no-duplicate-imports](/rules/eslint/no-duplicate-imports.md) - [no-empty](/rules/eslint/no-empty.md) - [no-empty-character-class](/rules/eslint/no-empty-character-class.md) - [no-empty-pattern](/rules/eslint/no-empty-pattern.md) - [no-eval](/rules/eslint/no-eval.md) - [no-ex-assign](/rules/eslint/no-ex-assign.md) - [no-extend-native](/rules/eslint/no-extend-native.md) - [no-extra-bind](/rules/eslint/no-extra-bind.md) - [no-extra-boolean-cast](/rules/eslint/no-extra-boolean-cast.md) - [no-extra-label](/rules/eslint/no-extra-label.md) - [no-fallthrough](/rules/eslint/no-fallthrough.md) - [no-func-assign](/rules/eslint/no-func-assign.md) - [no-global-assign](/rules/eslint/no-global-assign.md) - [no-implicit-coercion](/rules/eslint/no-implicit-coercion.md) - [no-import-assign](/rules/eslint/no-import-assign.md) - [no-inner-declarations](/rules/eslint/no-inner-declarations.md) - [no-invalid-regexp](/rules/eslint/no-invalid-regexp.md) - [no-irregular-whitespace](/rules/eslint/no-irregular-whitespace.md) - [no-iterator](/rules/eslint/no-iterator.md) - [no-label-var](/rules/eslint/no-label-var.md) - [no-labels](/rules/eslint/no-labels.md) - [no-lone-blocks](/rules/eslint/no-lone-blocks.md) - [no-loss-of-precision](/rules/eslint/no-loss-of-precision.md) - [no-misleading-character-class](/rules/eslint/no-misleading-character-class.md) - [no-multi-assign](/rules/eslint/no-multi-assign.md) - [no-multi-str](/rules/eslint/no-multi-str.md) - [no-nested-ternary](/rules/eslint/no-nested-ternary.md) - [no-new](/rules/eslint/no-new.md) - [no-new-func](/rules/eslint/no-new-func.md) - [no-new-object](/rules/eslint/no-new-object.md) - [no-new-symbol](/rules/eslint/no-new-symbol.md) - [no-new-wrappers](/rules/eslint/no-new-wrappers.md) - [no-nonoctal-decimal-escape](/rules/eslint/no-nonoctal-decimal-escape.md) - [no-obj-calls](/rules/eslint/no-obj-calls.md) - [no-octal](/rules/eslint/no-octal.md) - [no-octal-escape](/rules/eslint/no-octal-escape.md) - [no-param-reassign](/rules/eslint/no-param-reassign.md) - [no-proto](/rules/eslint/no-proto.md) - [no-prototype-builtins](/rules/eslint/no-prototype-builtins.md) - [no-regex-spaces](/rules/eslint/no-regex-spaces.md) - [no-restricted-syntax](/rules/eslint/no-restricted-syntax.md) - [no-return-assign](/rules/eslint/no-return-assign.md) - [no-script-url](/rules/eslint/no-script-url.md) - [no-self-assign](/rules/eslint/no-self-assign.md) - [no-self-compare](/rules/eslint/no-self-compare.md) - [no-sequences](/rules/eslint/no-sequences.md) - [no-setter-return](/rules/eslint/no-setter-return.md) - [no-shadow-restricted-names](/rules/eslint/no-shadow-restricted-names.md) - [no-sparse-arrays](/rules/eslint/no-sparse-arrays.md) - [no-template-curly-in-string](/rules/eslint/no-template-curly-in-string.md) - [no-this-before-super](/rules/eslint/no-this-before-super.md) - [no-throw-literal](/rules/eslint/no-throw-literal.md) - [no-undef](/rules/eslint/no-undef.md) - [no-undef-init](/rules/eslint/no-undef-init.md) - [no-unexpected-multiline](/rules/eslint/no-unexpected-multiline.md) - [no-unmodified-loop-condition](/rules/eslint/no-unmodified-loop-condition.md) - [no-unneeded-ternary](/rules/eslint/no-unneeded-ternary.md) - [no-unreachable](/rules/eslint/no-unreachable.md) - [no-unsafe-finally](/rules/eslint/no-unsafe-finally.md) - [no-unsafe-negation](/rules/eslint/no-unsafe-negation.md) - [no-unsafe-optional-chaining](/rules/eslint/no-unsafe-optional-chaining.md) - [no-useless-backreference](/rules/eslint/no-useless-backreference.md) - [no-useless-call](/rules/eslint/no-useless-call.md) - [no-useless-catch](/rules/eslint/no-useless-catch.md) - [no-useless-computed-key](/rules/eslint/no-useless-computed-key.md) - [no-useless-concat](/rules/eslint/no-useless-concat.md) - [no-useless-escape](/rules/eslint/no-useless-escape.md) - [no-useless-rename](/rules/eslint/no-useless-rename.md) - [no-var](/rules/eslint/no-var.md) - [no-with](/rules/eslint/no-with.md) - [object-shorthand](/rules/eslint/object-shorthand.md) - [one-var](/rules/eslint/one-var.md) - [prefer-const](/rules/eslint/prefer-const.md) - [prefer-rest-params](/rules/eslint/prefer-rest-params.md) - [prefer-spread](/rules/eslint/prefer-spread.md) - [prefer-template](/rules/eslint/prefer-template.md) - [radix](/rules/eslint/radix.md) - [require-atomic-updates](/rules/eslint/require-atomic-updates.md) - [require-yield](/rules/eslint/require-yield.md) - [strict](/rules/eslint/strict.md) - [symbol-description](/rules/eslint/symbol-description.md) - [use-isnan](/rules/eslint/use-isnan.md) - [valid-typeof](/rules/eslint/valid-typeof.md) - [adjacent-overload-signatures](/rules/typescript-eslint/adjacent-overload-signatures.md) - [array-type](/rules/typescript-eslint/array-type.md) - [await-thenable](/rules/typescript-eslint/await-thenable.md) - [ban-ts-comment](/rules/typescript-eslint/ban-ts-comment.md) - [ban-tslint-comment](/rules/typescript-eslint/ban-tslint-comment.md) - [class-literal-property-style](/rules/typescript-eslint/class-literal-property-style.md) - [class-methods-use-this](/rules/typescript-eslint/class-methods-use-this.md) - [consistent-generic-constructors](/rules/typescript-eslint/consistent-generic-constructors.md) - [consistent-indexed-object-style](/rules/typescript-eslint/consistent-indexed-object-style.md) - [consistent-return](/rules/typescript-eslint/consistent-return.md) - [consistent-type-assertions](/rules/typescript-eslint/consistent-type-assertions.md) - [consistent-type-definitions](/rules/typescript-eslint/consistent-type-definitions.md) - [consistent-type-exports](/rules/typescript-eslint/consistent-type-exports.md) - [consistent-type-imports](/rules/typescript-eslint/consistent-type-imports.md) - [default-param-last](/rules/typescript-eslint/default-param-last.md) - [dot-notation](/rules/typescript-eslint/dot-notation.md) - [explicit-function-return-type](/rules/typescript-eslint/explicit-function-return-type.md) - [explicit-member-accessibility](/rules/typescript-eslint/explicit-member-accessibility.md) - [explicit-module-boundary-types](/rules/typescript-eslint/explicit-module-boundary-types.md) - [init-declarations](/rules/typescript-eslint/init-declarations.md) - [max-params](/rules/typescript-eslint/max-params.md) - [member-ordering](/rules/typescript-eslint/member-ordering.md) - [method-signature-style](/rules/typescript-eslint/method-signature-style.md) - [naming-convention](/rules/typescript-eslint/naming-convention.md) - [no-array-constructor](/rules/typescript-eslint/no-array-constructor.md) - [no-array-delete](/rules/typescript-eslint/no-array-delete.md) - [no-base-to-string](/rules/typescript-eslint/no-base-to-string.md) - [no-confusing-non-null-assertion](/rules/typescript-eslint/no-confusing-non-null-assertion.md) - [no-confusing-void-expression](/rules/typescript-eslint/no-confusing-void-expression.md) - [no-dupe-class-members](/rules/typescript-eslint/no-dupe-class-members.md) - [no-duplicate-enum-values](/rules/typescript-eslint/no-duplicate-enum-values.md) - [no-duplicate-type-constituents](/rules/typescript-eslint/no-duplicate-type-constituents.md) - [no-dynamic-delete](/rules/typescript-eslint/no-dynamic-delete.md) - [no-empty-function](/rules/typescript-eslint/no-empty-function.md) - [no-empty-interface](/rules/typescript-eslint/no-empty-interface.md) - [no-empty-object-type](/rules/typescript-eslint/no-empty-object-type.md) - [no-explicit-any](/rules/typescript-eslint/no-explicit-any.md) - [no-extra-non-null-assertion](/rules/typescript-eslint/no-extra-non-null-assertion.md) - [no-extraneous-class](/rules/typescript-eslint/no-extraneous-class.md) - [no-floating-promises](/rules/typescript-eslint/no-floating-promises.md) - [no-for-in-array](/rules/typescript-eslint/no-for-in-array.md) - [no-implied-eval](/rules/typescript-eslint/no-implied-eval.md) - [no-import-type-side-effects](/rules/typescript-eslint/no-import-type-side-effects.md) - [no-inferrable-types](/rules/typescript-eslint/no-inferrable-types.md) - [no-invalid-this](/rules/typescript-eslint/no-invalid-this.md) - [no-invalid-void-type](/rules/typescript-eslint/no-invalid-void-type.md) - [no-loop-func](/rules/typescript-eslint/no-loop-func.md) - [no-magic-numbers](/rules/typescript-eslint/no-magic-numbers.md) - [no-meaningless-void-operator](/rules/typescript-eslint/no-meaningless-void-operator.md) - [no-misused-new](/rules/typescript-eslint/no-misused-new.md) - [no-misused-promises](/rules/typescript-eslint/no-misused-promises.md) - [no-misused-spread](/rules/typescript-eslint/no-misused-spread.md) - [no-mixed-enums](/rules/typescript-eslint/no-mixed-enums.md) - [no-namespace](/rules/typescript-eslint/no-namespace.md) - [no-non-null-asserted-nullish-coalescing](/rules/typescript-eslint/no-non-null-asserted-nullish-coalescing.md) - [no-non-null-asserted-optional-chain](/rules/typescript-eslint/no-non-null-asserted-optional-chain.md) - [no-non-null-assertion](/rules/typescript-eslint/no-non-null-assertion.md) - [no-redeclare](/rules/typescript-eslint/no-redeclare.md) - [no-redundant-type-constituents](/rules/typescript-eslint/no-redundant-type-constituents.md) - [no-require-imports](/rules/typescript-eslint/no-require-imports.md) - [no-restricted-imports](/rules/typescript-eslint/no-restricted-imports.md) - [no-restricted-types](/rules/typescript-eslint/no-restricted-types.md) - [no-shadow](/rules/typescript-eslint/no-shadow.md) - [no-this-alias](/rules/typescript-eslint/no-this-alias.md) - [no-type-alias](/rules/typescript-eslint/no-type-alias.md) - [no-unnecessary-boolean-literal-compare](/rules/typescript-eslint/no-unnecessary-boolean-literal-compare.md) - [no-unnecessary-condition](/rules/typescript-eslint/no-unnecessary-condition.md) - [no-unnecessary-parameter-property-assignment](/rules/typescript-eslint/no-unnecessary-parameter-property-assignment.md) - [no-unnecessary-qualifier](/rules/typescript-eslint/no-unnecessary-qualifier.md) - [no-unnecessary-template-expression](/rules/typescript-eslint/no-unnecessary-template-expression.md) - [no-unnecessary-type-arguments](/rules/typescript-eslint/no-unnecessary-type-arguments.md) - [no-unnecessary-type-assertion](/rules/typescript-eslint/no-unnecessary-type-assertion.md) - [no-unnecessary-type-constraint](/rules/typescript-eslint/no-unnecessary-type-constraint.md) - [no-unnecessary-type-conversion](/rules/typescript-eslint/no-unnecessary-type-conversion.md) - [no-unsafe-argument](/rules/typescript-eslint/no-unsafe-argument.md) - [no-unsafe-assignment](/rules/typescript-eslint/no-unsafe-assignment.md) - [no-unsafe-call](/rules/typescript-eslint/no-unsafe-call.md) - [no-unsafe-declaration-merging](/rules/typescript-eslint/no-unsafe-declaration-merging.md) - [no-unsafe-enum-comparison](/rules/typescript-eslint/no-unsafe-enum-comparison.md) - [no-unsafe-function-type](/rules/typescript-eslint/no-unsafe-function-type.md) - [no-unsafe-member-access](/rules/typescript-eslint/no-unsafe-member-access.md) - [no-unsafe-return](/rules/typescript-eslint/no-unsafe-return.md) - [no-unsafe-type-assertion](/rules/typescript-eslint/no-unsafe-type-assertion.md) - [no-unsafe-unary-minus](/rules/typescript-eslint/no-unsafe-unary-minus.md) - [no-unused-expressions](/rules/typescript-eslint/no-unused-expressions.md) - [no-unused-private-class-members](/rules/typescript-eslint/no-unused-private-class-members.md) - [no-unused-vars](/rules/typescript-eslint/no-unused-vars.md) - [no-use-before-define](/rules/typescript-eslint/no-use-before-define.md) - [no-useless-constructor](/rules/typescript-eslint/no-useless-constructor.md) - [no-useless-default-assignment](/rules/typescript-eslint/no-useless-default-assignment.md) - [no-useless-empty-export](/rules/typescript-eslint/no-useless-empty-export.md) - [no-var-requires](/rules/typescript-eslint/no-var-requires.md) - [no-wrapper-object-types](/rules/typescript-eslint/no-wrapper-object-types.md) - [non-nullable-type-assertion-style](/rules/typescript-eslint/non-nullable-type-assertion-style.md) - [only-throw-error](/rules/typescript-eslint/only-throw-error.md) - [parameter-properties](/rules/typescript-eslint/parameter-properties.md) - [prefer-as-const](/rules/typescript-eslint/prefer-as-const.md) - [prefer-destructuring](/rules/typescript-eslint/prefer-destructuring.md) - [prefer-enum-initializers](/rules/typescript-eslint/prefer-enum-initializers.md) - [prefer-find](/rules/typescript-eslint/prefer-find.md) - [prefer-for-of](/rules/typescript-eslint/prefer-for-of.md) - [prefer-function-type](/rules/typescript-eslint/prefer-function-type.md) - [prefer-includes](/rules/typescript-eslint/prefer-includes.md) - [prefer-literal-enum-member](/rules/typescript-eslint/prefer-literal-enum-member.md) - [prefer-namespace-keyword](/rules/typescript-eslint/prefer-namespace-keyword.md) - [prefer-nullish-coalescing](/rules/typescript-eslint/prefer-nullish-coalescing.md) - [prefer-optional-chain](/rules/typescript-eslint/prefer-optional-chain.md) - [prefer-promise-reject-errors](/rules/typescript-eslint/prefer-promise-reject-errors.md) - [prefer-readonly](/rules/typescript-eslint/prefer-readonly.md) - [prefer-readonly-parameter-types](/rules/typescript-eslint/prefer-readonly-parameter-types.md) - [prefer-reduce-type-parameter](/rules/typescript-eslint/prefer-reduce-type-parameter.md) - [prefer-regexp-exec](/rules/typescript-eslint/prefer-regexp-exec.md) - [prefer-return-this-type](/rules/typescript-eslint/prefer-return-this-type.md) - [prefer-string-starts-ends-with](/rules/typescript-eslint/prefer-string-starts-ends-with.md) - [prefer-ts-expect-error](/rules/typescript-eslint/prefer-ts-expect-error.md) - [promise-function-async](/rules/typescript-eslint/promise-function-async.md) - [related-getter-setter-pairs](/rules/typescript-eslint/related-getter-setter-pairs.md) - [require-array-sort-compare](/rules/typescript-eslint/require-array-sort-compare.md) - [require-await](/rules/typescript-eslint/require-await.md) - [restrict-plus-operands](/rules/typescript-eslint/restrict-plus-operands.md) - [restrict-template-expressions](/rules/typescript-eslint/restrict-template-expressions.md) - [return-await](/rules/typescript-eslint/return-await.md) - [strict-boolean-expressions](/rules/typescript-eslint/strict-boolean-expressions.md) - [strict-void-return](/rules/typescript-eslint/strict-void-return.md) - [switch-exhaustiveness-check](/rules/typescript-eslint/switch-exhaustiveness-check.md) - [triple-slash-reference](/rules/typescript-eslint/triple-slash-reference.md) - [unbound-method](/rules/typescript-eslint/unbound-method.md) - [unified-signatures](/rules/typescript-eslint/unified-signatures.md) - [use-unknown-in-catch-callback-variable](/rules/typescript-eslint/use-unknown-in-catch-callback-variable.md) - [first](/rules/import/first.md) - [newline-after-import](/rules/import/newline-after-import.md) - [no-duplicates](/rules/import/no-duplicates.md) - [no-mutable-exports](/rules/import/no-mutable-exports.md) - [no-self-import](/rules/import/no-self-import.md) - [no-webpack-loader-syntax](/rules/import/no-webpack-loader-syntax.md) - [expect-expect](/rules/jest/expect-expect.md) - [max-expects](/rules/jest/max-expects.md) - [max-nested-describe](/rules/jest/max-nested-describe.md) - [no-alias-methods](/rules/jest/no-alias-methods.md) - [no-commented-out-tests](/rules/jest/no-commented-out-tests.md) - [no-confusing-set-timeout](/rules/jest/no-confusing-set-timeout.md) - [no-deprecated-functions](/rules/jest/no-deprecated-functions.md) - [no-disabled-tests](/rules/jest/no-disabled-tests.md) - [no-done-callback](/rules/jest/no-done-callback.md) - [no-duplicate-hooks](/rules/jest/no-duplicate-hooks.md) - [no-export](/rules/jest/no-export.md) - [no-focused-tests](/rules/jest/no-focused-tests.md) - [no-hooks](/rules/jest/no-hooks.md) - [no-identical-title](/rules/jest/no-identical-title.md) - [no-jasmine-globals](/rules/jest/no-jasmine-globals.md) - [no-mocks-import](/rules/jest/no-mocks-import.md) - [no-standalone-expect](/rules/jest/no-standalone-expect.md) - [no-test-prefixes](/rules/jest/no-test-prefixes.md) - [prefer-called-with](/rules/jest/prefer-called-with.md) - [prefer-each](/rules/jest/prefer-each.md) - [prefer-equality-matcher](/rules/jest/prefer-equality-matcher.md) - [prefer-expect-resolves](/rules/jest/prefer-expect-resolves.md) - [prefer-hooks-in-order](/rules/jest/prefer-hooks-in-order.md) - [prefer-hooks-on-top](/rules/jest/prefer-hooks-on-top.md) - [prefer-strict-equal](/rules/jest/prefer-strict-equal.md) - [prefer-to-be](/rules/jest/prefer-to-be.md) - [prefer-to-contain](/rules/jest/prefer-to-contain.md) - [prefer-to-have-been-called](/rules/jest/prefer-to-have-been-called.md) - [prefer-to-have-been-called-times](/rules/jest/prefer-to-have-been-called-times.md) - [prefer-to-have-length](/rules/jest/prefer-to-have-length.md) - [prefer-todo](/rules/jest/prefer-todo.md) - [valid-describe-callback](/rules/jest/valid-describe-callback.md) - [valid-expect](/rules/jest/valid-expect.md) - [valid-title](/rules/jest/valid-title.md) - [alt-text](/rules/jsx-a11y/alt-text.md) - [anchor-ambiguous-text](/rules/jsx-a11y/anchor-ambiguous-text.md) - [anchor-has-content](/rules/jsx-a11y/anchor-has-content.md) - [anchor-is-valid](/rules/jsx-a11y/anchor-is-valid.md) - [aria-activedescendant-has-tabindex](/rules/jsx-a11y/aria-activedescendant-has-tabindex.md) - [aria-props](/rules/jsx-a11y/aria-props.md) - [aria-proptypes](/rules/jsx-a11y/aria-proptypes.md) - [aria-role](/rules/jsx-a11y/aria-role.md) - [aria-unsupported-elements](/rules/jsx-a11y/aria-unsupported-elements.md) - [autocomplete-valid](/rules/jsx-a11y/autocomplete-valid.md) - [click-events-have-key-events](/rules/jsx-a11y/click-events-have-key-events.md) - [control-has-associated-label](/rules/jsx-a11y/control-has-associated-label.md) - [heading-has-content](/rules/jsx-a11y/heading-has-content.md) - [html-has-lang](/rules/jsx-a11y/html-has-lang.md) - [iframe-has-title](/rules/jsx-a11y/iframe-has-title.md) - [img-redundant-alt](/rules/jsx-a11y/img-redundant-alt.md) - [interactive-supports-focus](/rules/jsx-a11y/interactive-supports-focus.md) - [label-has-associated-control](/rules/jsx-a11y/label-has-associated-control.md) - [lang](/rules/jsx-a11y/lang.md) - [media-has-caption](/rules/jsx-a11y/media-has-caption.md) - [mouse-events-have-key-events](/rules/jsx-a11y/mouse-events-have-key-events.md) - [no-access-key](/rules/jsx-a11y/no-access-key.md) - [no-aria-hidden-on-focusable](/rules/jsx-a11y/no-aria-hidden-on-focusable.md) - [no-autofocus](/rules/jsx-a11y/no-autofocus.md) - [no-distracting-elements](/rules/jsx-a11y/no-distracting-elements.md) - [no-interactive-element-to-noninteractive-role](/rules/jsx-a11y/no-interactive-element-to-noninteractive-role.md) - [no-noninteractive-element-interactions](/rules/jsx-a11y/no-noninteractive-element-interactions.md) - [no-noninteractive-element-to-interactive-role](/rules/jsx-a11y/no-noninteractive-element-to-interactive-role.md) - [no-noninteractive-tabindex](/rules/jsx-a11y/no-noninteractive-tabindex.md) - [no-redundant-roles](/rules/jsx-a11y/no-redundant-roles.md) - [no-static-element-interactions](/rules/jsx-a11y/no-static-element-interactions.md) - [prefer-tag-over-role](/rules/jsx-a11y/prefer-tag-over-role.md) - [role-has-required-aria-props](/rules/jsx-a11y/role-has-required-aria-props.md) - [role-supports-aria-props](/rules/jsx-a11y/role-supports-aria-props.md) - [scope](/rules/jsx-a11y/scope.md) - [tabindex-no-positive](/rules/jsx-a11y/tabindex-no-positive.md) - [always-return](/rules/promise/always-return.md) - [avoid-new](/rules/promise/avoid-new.md) - [catch-or-return](/rules/promise/catch-or-return.md) - [promise/no-callback-in-promise](/rules/promise/no-callback-in-promise.md) - [no-multiple-resolved](/rules/promise/no-multiple-resolved.md) - [promise/no-nesting](/rules/promise/no-nesting.md) - [no-new-statics](/rules/promise/no-new-statics.md) - [promise/no-return-in-finally](/rules/promise/no-return-in-finally.md) - [no-return-wrap](/rules/promise/no-return-wrap.md) - [param-names](/rules/promise/param-names.md) - [prefer-catch](/rules/promise/prefer-catch.md) - [valid-params](/rules/promise/valid-params.md) - [boolean-prop-naming](/rules/react/boolean-prop-naming.md) - [button-has-type](/rules/react/button-has-type.md) - [checked-requires-onchange-or-readonly](/rules/react/checked-requires-onchange-or-readonly.md) - [destructuring-assignment](/rules/react/destructuring-assignment.md) - [display-name](/rules/react/display-name.md) - [forbid-component-props](/rules/react/forbid-component-props.md) - [forbid-dom-props](/rules/react/forbid-dom-props.md) - [forbid-elements](/rules/react/forbid-elements.md) - [forbid-foreign-prop-types](/rules/react/forbid-foreign-prop-types.md) - [forbid-prop-types](/rules/react/forbid-prop-types.md) - [jsx-boolean-value](/rules/react/jsx-boolean-value.md) - [jsx-child-element-spacing](/rules/react/jsx-child-element-spacing.md) - [jsx-closing-bracket-location](/rules/react/jsx-closing-bracket-location.md) - [jsx-closing-tag-location](/rules/react/jsx-closing-tag-location.md) - [jsx-curly-brace-presence](/rules/react/jsx-curly-brace-presence.md) - [jsx-curly-spacing](/rules/react/jsx-curly-spacing.md) - [jsx-equals-spacing](/rules/react/jsx-equals-spacing.md) - [jsx-filename-extension](/rules/react/jsx-filename-extension.md) - [jsx-first-prop-new-line](/rules/react/jsx-first-prop-new-line.md) - [jsx-handler-names](/rules/react/jsx-handler-names.md) - [jsx-indent](/rules/react/jsx-indent.md) - [jsx-indent-props](/rules/react/jsx-indent-props.md) - [jsx-key](/rules/react/jsx-key.md) - [jsx-max-depth](/rules/react/jsx-max-depth.md) - [jsx-max-props-per-line](/rules/react/jsx-max-props-per-line.md) - [jsx-no-bind](/rules/react/jsx-no-bind.md) - [jsx-no-comment-textnodes](/rules/react/jsx-no-comment-textnodes.md) - [jsx-no-duplicate-props](/rules/react/jsx-no-duplicate-props.md) - [jsx-no-leaked-render](/rules/react/jsx-no-leaked-render.md) - [jsx-no-literals](/rules/react/jsx-no-literals.md) - [jsx-no-script-url](/rules/react/jsx-no-script-url.md) - [jsx-no-target-blank](/rules/react/jsx-no-target-blank.md) - [jsx-no-undef](/rules/react/jsx-no-undef.md) - [jsx-pascal-case](/rules/react/jsx-pascal-case.md) - [jsx-props-no-multi-spaces](/rules/react/jsx-props-no-multi-spaces.md) - [jsx-uses-react](/rules/react/jsx-uses-react.md) - [jsx-uses-vars](/rules/react/jsx-uses-vars.md) - [jsx-wrap-multilines](/rules/react/jsx-wrap-multilines.md) - [no-access-state-in-setstate](/rules/react/no-access-state-in-setstate.md) - [no-array-index-key](/rules/react/no-array-index-key.md) - [no-children-prop](/rules/react/no-children-prop.md) - [no-danger](/rules/react/no-danger.md) - [no-danger-with-children](/rules/react/no-danger-with-children.md) - [no-deprecated](/rules/react/no-deprecated.md) - [no-did-mount-set-state](/rules/react/no-did-mount-set-state.md) - [no-did-update-set-state](/rules/react/no-did-update-set-state.md) - [no-direct-mutation-state](/rules/react/no-direct-mutation-state.md) - [no-find-dom-node](/rules/react/no-find-dom-node.md) - [no-is-mounted](/rules/react/no-is-mounted.md) - [no-multi-comp](/rules/react/no-multi-comp.md) - [no-redundant-should-component-update](/rules/react/no-redundant-should-component-update.md) - [no-render-return-value](/rules/react/no-render-return-value.md) - [no-set-state](/rules/react/no-set-state.md) - [no-string-refs](/rules/react/no-string-refs.md) - [no-this-in-sfc](/rules/react/no-this-in-sfc.md) - [no-typos](/rules/react/no-typos.md) - [no-unescaped-entities](/rules/react/no-unescaped-entities.md) - [no-unknown-property](/rules/react/no-unknown-property.md) - [no-unsafe](/rules/react/no-unsafe.md) - [no-unstable-nested-components](/rules/react/no-unstable-nested-components.md) - [no-unused-class-component-methods](/rules/react/no-unused-class-component-methods.md) - [no-unused-state](/rules/react/no-unused-state.md) - [no-will-update-set-state](/rules/react/no-will-update-set-state.md) - [prefer-es6-class](/rules/react/prefer-es6-class.md) - [prefer-stateless-function](/rules/react/prefer-stateless-function.md) - [react-in-jsx-scope](/rules/react/react-in-jsx-scope.md) - [require-optimization](/rules/react/require-optimization.md) - [require-render-return](/rules/react/require-render-return.md) - [self-closing-comp](/rules/react/self-closing-comp.md) - [style-prop-object](/rules/react/style-prop-object.md) - [void-dom-elements-no-children](/rules/react/void-dom-elements-no-children.md) - [exhaustive-deps](/rules/react-hooks/exhaustive-deps.md) - [rules-of-hooks](/rules/react-hooks/rules-of-hooks.md) - [filename-case](/rules/unicorn/filename-case.md) - [no-static-only-class](/rules/unicorn/no-static-only-class.md) ## Playground - [](/playground/index.md)