Rules
JavaScript
Rule semantics and descriptions taken from ESLint. See individual rule docs for direct references.
noArguments
disallow the use of `arguments`noAsyncPromiseExecutor
disallow using an async function as a Promise executornoCatchAssign
disallow reassigning exceptions in `catch` clausesnoCommaOperator
disallow comma operatorsnoCompareNegZero
disallow comparing against `-0`noCondAssign
disallow assignment operators in conditional expressionsnoDebugger
disallow the use of `debugger`noDelete
disallow the use of the `delete` operatornoDeleteVars
disallow deleting variablesnoDoubleEquals
require the use of `===` and `!==`noDupeArgs
disallow duplicate arguments in `function` definitionsnoDuplicateCase
disallow duplicate case labelsnoDuplicateImportSource
disallow several import statements for a modulenoDuplicateKeys
disallow duplicate keys in object literalsnoEmptyBlocks
disallow empty block statementsnoExtraBooleanCast
disallow unnecessary boolean castsnoFunctionAssign
disallow reassigning `function` declarationsnoGetterReturn
enforce `return` statements in gettersnoImportAssign
disallow assigning to imported bindingsnoLabelVar
disallow labels that share a name with a variablenoNegationElse
MISSING DOCUMENTATIONnoNestedTernary
disallow nested ternary expressionsnoRestrictedGlobals
disallow certain global variablesnoSetterReturn
disallow returning values from settersnoShadowRestrictedNames
disallow identifiers from shadowing restricted namesnoShoutyConstants
MISSING DOCUMENTATIONnoSingleCharRegexAlternatives
disallow the use of single character alternations in regular expressionsnoSparseArray
disallow sparse arraysnoTemplateCurlyInString
disallow template literal placeholder syntax in regular stringsnoUndeclaredVariables
MISSING DOCUMENTATIONnoUnnecessaryContinue
disallow unnecessary `continue` statements inside loopsnoUnsafeFinally
disallow control flow statements in `finally` blocksnoUnsafeNegation
disallow negating the left operand of relational operatorsnoUnusedTemplateLiteral
MISSING DOCUMENTATIONnoUnusedVariables
disallow unused variablesnoVar
require `let` or `const` instead of `var`preferOptionalChaining
MISSING DOCUMENTATIONuseBlockStatements
MISSING DOCUMENTATIONuseCamelCase
enforce camelcase naming conventionuseDefaultExportBasename
MISSING DOCUMENTATIONuseDefaultImportBasename
MISSING DOCUMENTATIONuseFunctionDeclarations
MISSING DOCUMENTATIONuseSingleCaseStatement
MISSING DOCUMENTATIONuseSingleVarDeclarator
MISSING DOCUMENTATIONuseSortedSpecifiers
MISSING DOCUMENTATIONuseTemplate
require template literals instead of string concatenationuseWhile
MISSING DOCUMENTATIONTypeScript
noExplicitAny
it bans the use of `any`preferShorthandArrayType
promotes the use of `[]` over `Array<>`useInterfaces
MISSING DOCUMENTATIONJSX Accessibility
Rule semantics and descriptions taken from eslint-plugin-jsx-a11y. See individual rule docs for direct references.
noAccessKey
enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreadernoAriaUnsupportedElements
enforce that elements that do not support ARIA roles, states, and properties do not have those attributesnoAutofocus
discourage the usage of `autoFocus`noDistractingElements
enforce distracting elements are not usednoHeaderScope
enforce scope prop is only used on `th` elementsnoNoninteractiveElementToInteractiveRole
non-interactive elements should not be assigned interactive rolesnoNoninteractiveTabindex
"`tabIndex` should only be declared on interactive elements"noOnChange
discourage the usage of `onChange`noPositiveTabindex
enforce tabIndex value is not greater than zeronoRedundantAlt
enforce `img` alt prop does not contain the word "image", "picture", or "photo"noRedundantRoles
enforce explicit role property is not the same as implicit/default role property on elementnoSvgWithoutTitle
MISSING DOCUMENTATIONnoTargetBlank
Prevent usage of unsafe `target="_blank"`useAltText
enforce alternative textuseAnchorContent
enforce that anchors have content and that the content is accessible to screen readersuseAriaProps
enforce all `aria-*` props are validuseAriaPropsForRole
enforce that elements with ARIA roles must have all required attributes for that roleuseAriaProptypes
enforce ARIA state and property values are validuseHeadingContent
enforce heading (`h1`, `h2`, etc) elements contain accessible contentuseIframeTitle
enforce `iframe` elements have a title attributeuseKeyWithClickEvents
enforce a clickable non-interactive element has at least one keyboard event listener.useKeyWithMouseEvents
enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only usersuseMediaCaption
enforces that `audio` and `video` elements must have a `track` for captionsuseValidAnchor
enforce all anchors are valid, navigable elementsReact
Rule semantics and descriptions taken from eslint-plugin-react. See individual rule docs for direct references.