Skip to content

All Rules

This is a full table of all rules that will be implemented in the main Flint project. It includes rules from all three provided categories of plugins: Core, Focused, and Incubator. Each rule is equivalent to at least one existing rule in another linter.

Implemented: 142 of 834 (17%)
Flint RulePluginPreset
accessKeysDisallow the use of the accessKey / accesskey attribute on JSX elements.JSXlogical
accessorThisRecursionTypeScriptlogical (strict)
afterAllPaddingLinesViteststylistic (strict)
afterEachPaddingLinesViteststylistic (strict)
alertsReports uses of the global alert/confirm/prompt dialog APIs.Browserlogical
aliasMethodsViteststylistic
allPaddingLinesViteststylistic (strict)
altTextsReports elements that require alt text but are missing it.JSXlogical
anchorAmbiguousTextReports anchor elements with ambiguous text that doesn't describe the link destination.JSXlogical (strict)
anchorContentReports anchor elements without accessible content.JSXlogical
anchorNativesNext.jslogical
anchorValidityReports invalid usage of anchor elements.JSXlogical
anyArgumentsTypeScriptlogical
anyAssignmentsTypeScriptlogical
anyCallsTypeScriptlogical
anyMemberAccessTypeScriptlogical
anyReturnsReports returning a value with type any from a function.TypeScriptlogical
argumentsTypeScriptlogical
ariaActiveDescendantTabIndexReports elements with aria-activedescendant without tabIndex.JSXlogical
ariaHiddenFocusablesReports elements with aria-hidden='true' that are focusable.JSXlogical (strict)
ariaPropsReports invalid ARIA properties.JSXlogical
ariaPropTypesReports ARIA properties with invalid value types.JSXlogical
ariaRoleValidityReports invalid or abstract ARIA roles.JSXlogical
ariaUnsupportedElementsReports ARIA attributes on elements that don't support them.JSXlogical
arrayCallbackReturnsTypeScriptuntyped
arrayConstructorsTypeScriptlogical
arrayDeleteUnnecessaryCountsTypeScriptstylistic
arrayElementDeletionsTypeScriptlogical
arrayEmptyCallbackSlotsTypeScriptlogical
arrayExistenceChecksConsistencyTypeScriptstylistic
arrayFilteredFindsTypeScriptstylistic (strict)
arrayFindsTypeScriptstylistic
arrayFlatMapMethodsTypeScriptstylistic (strict)
arrayFlatMethodsTypeScriptstylistic (strict)
arrayFlatUnnecessaryDepthsTypeScriptstylistic
arrayHandlersSolidJS(none)
arrayIncludesTypeScriptstylistic
arrayIncludesMethodsTypeScriptstylistic (strict)
arrayIndexKeyesReactlogical
arrayIndexOfMethodsTypeScriptstylistic (strict)
arrayLoopsTypeScriptstylistic
arrayMapIdentitiesTypeScriptlogical
arrayMutableReversesTypeScriptstylistic
arrayMutableSortsTypeScriptstylistic
arraySliceUnnecessaryEndTypeScriptstylistic
arraySomeMethodsTypeScriptstylistic (strict)
arrayTernarySpreadingConsistencyTypeScriptstylistic
arrayTypesTypeScriptstylistic
arrayUnnecessaryLengthChecksTypeScriptlogical
asConstAssertionsTypeScriptstylistic
assertStrictPrefer strict assertion mode from Node.js for better error messages and behavior.Node.jslogical
assertStylesPrefer assert.ok() over assert() for explicit intent and better readability.Node.jsstylistic
assignmentOperatorShorthandsTypeScriptstylistic
asyncFunctionAwaitsTypeScriptlogical
asyncPromiseExecutorsReports using async functions as Promise executor functions.TypeScriptlogical
asyncUnnecessaryPromiseWrappersTypeScriptlogical
atAccessesTypeScriptstylistic (strict)
attributeNameCasingVuestylistic
attributeOrdersVuestylistic (strict)
attributesSortingAstrostylistic
attributeValidityJSXlogical
authorPresencePackageJSON(none)
authorValidityPackageJSONlogical
autocompleteEnsure the autocomplete attribute is correct and suitable for the form field.JSXlogical
autoFocusPropsReports autoFocus props that are not set to false.JSXlogical
awaitInsidePromiseMethodsTypeScriptlogical (strict)
awaitThenableTypeScriptlogical
bareUrlsReports bare URLs that should be formatted as autolinks or links.Markdownstylistic (strict)
beforeAllPaddingLinesViteststylistic (strict)
beforeEachPaddingLinesViteststylistic (strict)
bindDirectiveValidityVuelogical
bindStylesVuestylistic
binValidityPackageJSONlogical
blobReadingMethodsPrefer direct Blob reading methods over wrapping in Response for simpler code.Node.jsstylistic
blockMappingsYAMLstylistic
blockOrdersVuesorting
blockquoteBlankLineMultiplesMarkdownstylistic (strict)
blockSequencesYAMLstylistic
booleanPropNamesJSXstylistic (strict)
booleanValuesPrefer shorthand boolean attributes over explicit {true} values in JSX.JSXstylistic
bracedStatementsDisallow unnecessary JSX curly braces around literals and JSX elements.JSXstylistic
bufferAllocatorsPrefer modern Buffer allocation methods over the deprecated Buffer constructor.Node.jslogical
bugsPresencePackageJSON(none)
builtinCoercionsTypeScriptstylistic (strict)
builtinConstructorNewsTypeScriptstylistic
bundleDependenciesPresencePackageJSON(none)
bundleDependenciesValidityPackageJSONlogical
buttonTypesReports button elements without an explicit type attribute.JSXlogical
calledOnceWithAssertionsViteststylistic (strict)
calledTimesAssertionsViteststylistic (strict)
calledWithAssertionsViteststylistic (strict)
caseDeclarationsReports lexical declarations in case clauses without wrapping them in blocks.TypeScriptuntyped
caseDuplicatesReports switch statements with duplicate case clause test expressions.TypeScriptlogical
caseFallthroughsTypeScriptlogical
catchCallbackTypesTypeScriptlogical
caughtErrorCausesTypeScriptlogical (strict)
caughtVariableNamesTypeScriptstylistic (strict)
chainedAssignmentsReports using chained assignment expressions (e.g., a = b = c).TypeScriptstylistic
charAtComparisonsTypeScriptlogical
childContentOverridesVuelogical
childrenPropsReports usage of the children prop.JSXstylistic
childrenWhitespaceJSXlogical (strict)
classAssignmentsReports reassigning class declarations.TypeScriptuntyped
classComponentStateDefinitionsReactstylistic (strict)
classComponentStateInitializationReactstylistic (strict)
classesSortingstylistic
classFieldDeclarationsTypeScriptuntyped
classListDirectiveObjectsAstrostylistic
classListDirectivesAstrostylistic
classListDirectiveSplitsAstrostylistic
classListTogglesPrefer using classList.toggle() over conditional classList.add() and classList.remove().Browserstylistic
classLiteralPropertiesTypeScriptstylistic
classMemberDuplicatesTypeScriptuntyped
classMethodsThisTypeScriptstylistic (strict)
clickEventKeyEventsReports onClick without keyboard event handlers.JSXlogical
clientComponentAsyncDefinitionsNext.jslogical
clientOnlyDirectiveValuesAstrological
cloakDirectiveValidityVuelogical
codeSpacesMarkdownstylistic
combinedPushesTypeScriptstylistic (strict)
commentedOutTestsVitestlogical (strict)
commentTextNodesReports JSX text nodes that contain comment syntax but are rendered as text.JSXlogical
comparisonMatcherAssertionsViteststylistic
compilerOptionsReactconfig
componentConditionalReturnsSolidJSlogical
componentDataSharingVuelogical
componentDefinitionsReactstylistic
componentDidMountSetStatesReactlogical (strict)
componentDidUpdateSetStatesReactlogical (strict)
componentDisplayNamesReactlogical (strict)
componentFileExportsAstrological
componentHookFactoriesReactlogical
componentHtmlTextPropsVuelogical
componentNameCasingVuestylistic
componentNamesVuestylistic
componentNameValidityVuelogical
componentNestingReactlogical
componentPropertyOrderVuesorting
componentPropMutationsVuelogical
componentVIsBindsVuelogical
componentWillUpdateSetStatesReactlogical (strict)
computedAsyncPropertiesVuelogical
computedPropertyLikeMethodsVuelogical
computedPropertyReturnsVuelogical
computedPropertySideEffectsVuelogical
conditionalExpectsViteststylistic (strict)
configValidityPackageJSONlogical
consecutiveNonNullAssertionsReports unnecessary extra non-null assertions.TypeScriptstylistic
consoleCallsTypeScript(none)
consoleSpacesNode.jsstylistic (strict)
constantAssignmentsReports attempting to reassign variables declared with const.TypeScriptuntyped
constructorReturnsReports returning values from constructor functions.TypeScriptuntyped
constructorSupersTypeScriptuntyped
constVariablesTypeScriptlogical
contextValueReferencesReactlogical (strict)
cpuValidityPackageJSONlogical
cspellRuns the CSpell spell checker on any source code file.Spellinglogical
cssManualStylesheetsNext.jslogical
customFontsInPagesNext.jslogical
dangerouslySetInnerHTMLWithChildrenReactlogical
dangerousPropsReactlogical (strict)
dataComputedPropertiesVuelogical
dateConstructorClonesTypeScriptlogical
dateNowTimestampsTypeScriptlogical (strict)
debuggerStatementsReports using debugger statements.TypeScriptlogical
decoratorsSortingstylistic
defaultCaseLastReports switch statements where the default clause is not last.TypeScriptlogical
defaultParameterLastTypeScriptuntyped
defaultPropsMatchingPropTypesReactlogical
defaultPropTypesVuelogical
defineEmitsValidityVuelogical
defineOptionsValidityVuelogical
definePropsValidityVuelogical
definitionContentsReports definitions with empty URLs or only empty fragments.Markdownlogical
definitionDuplicatesReports duplicate definition identifiers (case-insensitive).Markdownlogical
definitionUsesReports unused reference definitions.Markdownlogical
deletesReports using the delete operator.Performancelogical
dependenciesPresencePackageJSON(none)
dependenciesValidityPackageJSONlogical
dependencyRangesPackageJSON(none)
dependencyUniquenessPackageJSONlogical
deprecatedTypeScriptlogical
deprecatedDataObjectDeclarationsVuelogical
deprecatedDestroyedLifecycleHooksVuelogical
deprecatedFiltersVuelogical
deprecatedFunctionalTemplatesVuelogical
deprecatedThisDefaultPropsVuelogical
describeCallbackValidityVitestlogical
describePaddingLinesViteststylistic (strict)
describeTitleReferencesViteststylistic
descriptionPresencePackageJSONlogical
descriptionValidityPackageJSONlogical
destructuringReactstylistic
destructuringConsistencyTypeScriptstylistic (strict)
devDependenciesPresencePackageJSON(none)
devDependenciesValidityPackageJSONlogical
directivePairsTypeScriptlogical (strict)
directiveRequireDescriptionsTypeScriptstylistic (strict)
directoriesValidityPackageJSONlogical
distractingElementsReports distracting elements like <marquee> and <blink>.JSXlogical
documentCookiesReports uses of document.cookie which can be error-prone and has security implications.Browserlogical (strict)
duplicateArgumentsReports functions with duplicate parameter names in their signatures.TypeScriptuntyped
duplicateAttributesVuelogical
duplicateVElseIfConditionsVuelogical
dynamicDeletesTypeScriptlogical
eachLoopsViteststylistic
effectSetStatesReactlogical
elementChildrenValidityReports void DOM elements that have children, which is invalid HTML.JSXlogical (strict)
elseDirectiveValidityVuelogical
elseIfDirectiveValidityVuelogical
elseIfDuplicatesReports duplicate conditions in if-else-if chains that make code unreachable.TypeScriptlogical
elseReturnsTypeScriptstylistic (strict)
emitsValidatorReturnsVuelogical
emptyBlocksReports empty block statements that should contain code.TypeScriptstylistic
emptyDestructuresReports using empty destructuring patterns that destructure no values.TypeScriptlogical
emptyDocumentsYAMLlogical
emptyEnumsTypeScriptlogical
emptyExportsTypeScriptlogical
emptyFieldsPackageJSONlogical
emptyFilesTypeScriptstylistic (strict)
emptyFunctionsTypeScriptstylistic (strict)
emptyMappingKeysReports empty mapping keys.YAMLlogical
emptyMappingValuesYAMLlogical
emptyModuleAttributesTypeScriptstylistic
emptyObjectTypesTypeScriptlogical
emptySequenceEntriesYAMLlogical
emptyStaticBlocksReports empty static initialization blocks within class declarations.TypeScriptstylistic
emptyTypeParameterListsTypeScriptstylistic
endTagPresenceVuelogical
enginesPresencePackageJSON(none)
enumMemberLiteralsTypeScriptlogical
enumMixedValuesTypeScriptlogical
enumValueConsistencyTypeScriptlogical
enumValueDuplicatesTypeScriptlogical
equalityMatchersViteststylistic
equalityOperatorsTypeScriptlogical
errorBoundariesReactlogical
errorMessagesTypeScriptlogical (strict)
errorSubclassPropertiesTypeScriptlogical (strict)
errorUnnecessaryCaptureStackTracesTypeScriptlogical
escapeSequenceCasingTypeScriptstylistic (strict)
evalsTypeScriptlogical
eventClassesPrefer EventTarget over EventEmitter for cross-platform compatibility.Node.jslogical (strict)
eventHandlerCasingSolidJSlogical
eventListenerSubscriptionsPrefer addEventListener over assigning to on* event handler properties.Browserlogical (strict)
eventTriggerExplicitEmitsVuelogical
exceptionAssignmentsReports reassigning exception parameters in catch clauses.TypeScriptlogical
exhaustiveDepsReactlogical
expectGroupPaddingLinesViteststylistic (strict)
expectResolvesViteststylistic
expectsOutsideTestsVitestlogical (strict)
expectTypeOfsViteststylistic
expectValidityVitestlogical
explicitAnysTypeScriptlogical
exponentiationOperatorsTypeScriptstylistic
exportFromImportsTypeScriptstylistic
exportMutablesTypeScriptlogical
exportsSortingstylistic
exportsAssignmentsPrevent assignment to the exports variable in CommonJS modules.Node.jslogical
exportsValidityPackageJSONlogical
exposeAfterAwaitsVuelogical
extraneousClassesTypeScriptlogical (strict)
fencedCodeLanguagesReports fenced code blocks without a language specified.Markdownstylistic (strict)
fetchMethodBodiesTypeScriptlogical
fileExtensionsYAMLstylistic (strict)
filenamesVitest(none)
filePathsFromImportMetaNode.jsstylistic (strict)
fileReadJSONBuffersNode.jsstylistic (strict)
filesPresencePackageJSON(none)
filesRedundancyPackageJSONlogical
filesValidityPackageJSONlogical
floatingPromisesTypeScriptlogical
forBindKeysVuelogical
forDirectionsReports for loops with counter variables that move in the wrong direction.TypeScriptstylistic
forDirectiveValidityVuelogical
forInArraysReports iterating over an array with a for-in loop.TypeScriptlogical
forMapsSolidJSlogical
fragmentElementsJSXstylistic
functionAssignmentsReports reassigning variables declared with function declarations.TypeScriptuntyped
functionCallSpreadsTypeScriptstylistic
functionComponentDefinitionsReactstylistic
functionComponentThisReferencesReactuntyped
functionDefinitionScopeConsistencyTypeScriptstylistic (strict)
functionNewCallsReports using the Function constructor to create functions from strings.TypeScriptlogical
functionTypeDeclarationsTypeScriptstylistic
gatingReactconfig
generatorFunctionYieldsReports generator functions that do not yield values.TypeScriptlogical
genericConstructorCallsTypeScriptstylistic
getterReturnsTypeScriptuntyped
getterSetterPairedTypesTypeScriptlogical
globalAssignmentsReports attempting to assign to read-only global variables such as undefined, NaN, Infinity, Object, etc.TypeScriptuntyped
globalMutationsReactlogical
globalObjectCallsReports calling global objects like Math, JSON, or Reflect as functions.TypeScriptuntyped
globalThisAliasesTypeScriptstylistic (strict)
googleAnalyticsInlineScriptNext.jslogical
googleFontDisplayNext.jslogical
googleFontPreconnectNext.jslogical
groupedAccessorPairsTypeScriptstylistic
hashbangsNode.jslogical
headDuplicatesNext.jslogical
headImportsInDocumentsNext.jslogical
headingContentsReports heading elements without accessible content.JSXlogical
headingDuplicatesMarkdownstylistic (strict)
headingEmphasisEquivalentsMarkdownstylistic (strict)
headingIncrementsReports heading levels incrementing by more than one.Markdownlogical
headingRootDuplicatesReports multiple H1 headings in the same document.Markdownlogical (strict)
headingRootPresenceMarkdownlogical (strict)
headingTrailingPunctuationMarkdownstylistic (strict)
headNativesNext.jslogical
heritageClausesSortingstylistic
hoistedApiPositionsVitestlogical (strict)
homepageValidityPackageJSONlogical
hookDuplicatesVitestlogical (strict)
hookOrdersViteststylistic (strict)
hooksBeforeTestCasesViteststylistic (strict)
htmlDirectiveValidityVuelogical
htmlLangsReports <html> elements without a lang prop.JSXlogical
ifDirectiveValidityVuelogical
iframeSandboxesJSXlogical (strict)
iframeTitlesReports <iframe> elements without a title prop.JSXlogical
imageAltTextsReports images without alternative text.Markdownlogical
imageContentsReports images with empty URLs or only empty fragments.Markdownlogical
imgNativesNext.jslogical
immutabilityReactlogical
implicitGlobalsPrevents implicit global variable declarations in browser scripts.Browserlogical
impliedEvalsTypeScriptlogical
importAssignmentsTypeScriptuntyped
importCyclesTypeScriptstylistic
importedNamespaceDynamicAccessesDisallow computed member access on imported namespace identifiers.Performancelogical
importEmptyBlocksTypeScriptlogical
importExtraneousDependenciesTypeScriptlogical (strict)
importFileExtensionsNode.js(none)
importMetaPropertiesNuxtstylistic
importSelfTypeScriptstylistic
importsInMocksVitest(none)
importTypeSideEffectsTypeScript(none)
importUnnecessaryPathSegmentsTypeScriptstylistic
incompatibleLibrariesReactlogical
indexedObjectTypesTypeScriptstylistic
inlineScriptIdNext.jslogical
innerHTMLPropsSolidJSlogical (strict)
inputCheckedMutabilityJSXlogical
instanceOfArraysTypeScriptlogical
interactiveElementRolesReports interactive elements with non-interactive ARIA roles.JSXlogical
interactiveElementsFocusableReports interactive elements that are not focusable via keyboard.JSXlogical
interfacesSortingstylistic
intersectionTypesSortingstylistic
invalidCodeLinesReports cases for invalid code that isn't formatted across lines.Flintlogical
invalidThisTypeScriptuntyped
invalidVoidTypesTypeScriptlogical (strict)
irregularWhitespaceYAMLstylistic
isDirectiveValidityVuelogical
isNaNComparisonsTypeScriptlogical
iterableKeysReactlogical (strict)
jsdocAccessTagsTypeScriptstylistic
jsdocAsterisksTypeScriptstylistic (strict)
jsdocEmptyBlocksTypeScriptstylistic
jsdocEmptyTagsTypeScriptstylistic
jsdocImplementsTagsTypeScriptstylistic
jsdocInformativeDocsTypeScriptstylistic (strict)
jsdocMisleadingBlocksTypeScriptstylistic (strict)
jsdocMultilineBlocksTypeScriptstylistic (strict)
jsdocParameterDescriptionHyphensTypeScriptstylistic (strict)
jsdocParameterNamesTypeScriptstylistic
jsdocPropertyNamesTypeScriptstylistic
jsdocRedundantTypesTypeScriptstylistic
jsdocTagNamesTypeScriptstylistic (strict)
jsdocTagsSortingstylistic
jsdocTemplateNamesTypeScriptstylistic
jsdocTypesSyntaxTypeScriptstylistic
jsdocUnnecessaryReturnsTypeScriptstylistic
jsdocUnnecessaryYieldsTypeScriptstylistic
jsdocValidTypesTypeScriptstylistic
jsdocValuesTypeScriptstylistic
jsdocYieldsTypeScriptstylistic
jsonKeysSortingstylistic
jsxPropsSortingstylistic
keyboardEventKeysPrefer KeyboardEvent.key over deprecated properties like keyCode, charCode, and which.Browserlogical
keyDuplicatesReports unnecessary duplicate keys that override previous values.JSONlogical
keyDuplicatesVuelogical
keyNormalizationReports object keys that are not normalized using Unicode normalization forms.JSONlogical
keyValidityVuelogical
keywordsPresencePackageJSON(none)
keywordsValidityPackageJSONlogical
labelAssociatedControlsReports <label> elements without an associated control element.JSXlogical
labelReferencesReports missing label references.Markdownlogical
labelReferenceValidityReports invalid label references with whitespace.Markdownlogical
langValidityReports invalid lang attribute values.JSXlogical (strict)
licenseRequiredPackageJSONlogical
licenseValidityPackageJSONlogical
lifecyclesAfterAwaitsVuelogical
linkContentsReports links with empty URLs or only empty fragments.Markdownlogical
linkDescriptionsMarkdownlogical (strict)
linkFragmentsMarkdownlogical
literalConstructorWrappersTypeScriptstylistic
loneTemplatesVuelogical (strict)
loopAwaitsReports using await expressions inside loops.Performancelogical
loopFunctionsReports function declarations and expressions inside loops that reference variables modified by the loop.Performancelogical
mainValidityPackageJSONlogical
manualMemoizationPreservationsReactlogical
manValidityPackageJSONlogical
mapsSortingstylistic
mathMethodsTypeScriptstylistic (strict)
meaninglessVoidOperatorsTypeScriptlogical
mediaCaptionsReports media elements without captions.JSXlogical
mediaSyntaxReversalsReports reversed link and image syntax in Markdown.Markdownstylistic
memoDirectiveValidityVuelogical
messagePhrasesFlintlogical (strict)
misleadingVoidExpressionsTypeScriptlogical
missingPlaceholdersFlintlogical
misusedPromisesTypeScriptlogical
mockedFunctionInstancesViteststylistic (strict)
mockTypeParametersViteststylistic (strict)
modelDirectiveValidityVuelogical
moduleAssignmentsNext.jsuntyped
modulesSortingstylistic
moduleSpecifierListsTypeScriptlogical
mouseEventKeyEventsReports mouse events without corresponding keyboard events.JSXlogical
multilineAmbiguitiesTypeScriptstylistic
namedDefaultExportsTypeScriptstylistic (strict)
namePresencePackageJSONlogical
namespaceDeclarationsReports using legacy namespace declarations.TypeScriptlogical
namespaceImplicitAmbientImportsTypeScriptstylistic (strict)
namespaceKeywordsTypeScriptstylistic
namespaceValiditySolidJSuntyped
nameValidityPackageJSONlogical
nativeObjectExtensionsTypeScriptuntyped
negativeIndexLengthMethodsTypeScriptstylistic (strict)
negativeZeroComparisonsReports comparisons with -0 that may not behave as expected.TypeScriptlogical
nestedStandaloneIfsTypeScriptstylistic
newDefinitionsTypeScriptlogical
newExpressionsReports standalone new expressions that don't use the constructed object.TypeScriptlogical
newNativeNonConstructorsDisallows using new with global non-constructor functions like Symbol and BigInt.TypeScriptuntyped
nextDocumentOutsidePageNext.jslogical
nextScriptInHeadsNext.jslogical
nextScriptInteractiveOutsideDocumentNext.jslogical
nextTickValidityVuelogical
nodeAppendMethodsPrefer modern DOM append/prepend methods over appendChild/insertBefore.Browserlogical (strict)
nodeDatasetAttributesPrefer using element.dataset over getAttribute/setAttribute for data-* attributes.Browserlogical (strict)
nodeModificationMethodsPrefer modern DOM APIs like .replaceWith() and .before() over legacy methods like .replaceChild() and .insertBefore().Browserlogical (strict)
nodePropertyInChecksFlintlogical
nodeProtocolsNode.jslogical
nodeQueryMethodsPrefer modern querySelector and querySelectorAll over legacy DOM query methods.Browserstylistic (strict)
nodeRemoveMethodsPrefer the modern node.remove() method over the legacy parentNode.removeChild(node) API.Browserlogical (strict)
nodeTestImportsVitestlogical
nodeTextContentsPrefer textContent over innerText for DOM nodes.Browserlogical (strict)
nonInteractiveElementInteractionsReports non-interactive elements with interactive event handlers.JSXlogical
nonInteractiveElementRolesReports non-interactive elements with interactive ARIA roles.JSXlogical
nonInteractiveElementTabIndexesReports non-interactive elements with positive or zero tabIndex values.JSXlogical
nonNullableTypeAssertionsTypeScriptstylistic
nonNullAssertedNullishCoalescesTypeScriptlogical (strict)
nonNullAssertedOptionalChainsTypeScriptlogical
nonNullAssertionPlacementTypeScriptstylistic (strict)
nonNullAssertionsTypeScriptlogical (strict)
nonOctalDecimalEscapesReports non-octal decimal escape sequences (\8 and \9) in string literals.TypeScriptlogical
nullishCoalescingOperatorsTypeScriptstylistic
numberMethodRangesTypeScriptlogical
numberStaticMethodsTypeScriptstylistic (strict)
numericErasingOperationsTypeScriptlogical
numericLiteralCasingTypeScriptstylistic (strict)
numericLiteralParsingReports parseInt calls with binary, hexadecimal, or octal strings that can be replaced with numeric literals.TypeScriptstylistic
numericPrecisionTypeScriptlogical
numericSeparatorGroupsTypeScriptstylistic (strict)
numericTrailingZerosYAMLstylistic (strict)
objectAssignSpreadsTypeScriptstylistic
objectCallsTypeScriptlogical
objectEntriesMethodsTypeScriptstylistic (strict)
objectHasOwnsTypeScriptstylistic
objectKeyDuplicatesTypeScriptlogical
objectProtoReports using the deprecated proto property to access or modify an object's prototype.TypeScriptuntyped
objectPrototypeBuiltInsTypeScriptlogical
objectsSortingstylistic
objectShorthandTypeScriptstylistic
objectSpreadUnnecessaryFallbacksTypeScriptlogical
objectTypeDefinitionsTypeScriptstylistic
objectTypesSortingstylistic
octalEscapesReports using octal escape sequences in string literals.TypeScriptuntyped
octalNumbersReports using legacy octal numeric literals.TypeScriptuntyped
olPrefixesMarkdownstylistic (strict)
onceDirectiveValidityVuelogical
onDirectiveValidityVuelogical
onEventHyphensVuestylistic
onEventStylesVuestylistic
onExactModifiersVuelogical
operatorAssignmentShorthandTypeScriptstylistic
optionalChainOperatorsTypeScriptstylistic
optionalDependenciesPresencePackageJSON(none)
optionalDependenciesValidityPackageJSONlogical
optionalPropDefaultsVuelogical
osValidityPackageJSONlogical
overloadSignaturesAdjacentTypeScriptstylistic
packageCollectionsSortingstylistic
parameterPropertyAssignmentTypeScriptlogical
parameterReassignmentsTypeScriptstylistic (strict)
parseIntRadixesTypeScriptlogical
peerDependenciesPresencePackageJSON(none)
peerDependenciesValidityPackageJSONlogical
plainScalarsYAMLstylistic (strict)
plusOperandsTypeScriptlogical
polyfillDuplicatesNext.jslogical
preDirectiveValidityVuelogical
privateValidityPackageJSONlogical
processExistsNode.jslogical
promiseExecutorReturnsTypeScriptlogical
promiseFinallyReturnsTypeScriptlogical
promiseFunctionAsyncTypeScriptstylistic
promiseMethodSingleArrayArgumentsTypeScriptlogical
promiseRejectErrorsTypeScriptlogical
promiseSettleAssertionsViteststylistic
propDestructuresSolidJSlogical
propDuplicatesDisallow duplicate props in JSX elements.JSXlogical
propertyAccessNotationTypeScriptstylistic
propertyOrderingPackageJSONlogical
propertyValidityReactuntyped
propNameCasingVuestylistic
propNameValidityVuelogical
propRequiredAndDefaultsVuelogical (strict)
propTypeConstructorsVuelogical
propTypesReactuntyped
propTypesVuelogical
publishConfigValidityPackageJSONlogical
pureComponentShouldUpdateDefinitionsJSXlogical (strict)
purityReactlogical
reactivitySolidJSlogical
reactLikeDepsSolidJSuntyped
reactLikePropsSolidJSuntyped
recursionOnlyArgumentsTypeScriptlogical
reduceTypeParametersTypeScriptlogical (strict)
redundantTypeConstituentsTypeScriptlogical
referenceLikeUrlsMarkdownlogical
refOperandsVuelogical
refsReactlogical
refStringsReactlogical
regexAllGlobalFlagsTypeScriptlogical
regexAmbiguousInvalidityTypeScriptlogical
regexCharacterClassesTypeScriptstylistic (strict)
regexCharacterClassRangesTypeScriptstylistic
regexCharacterClassSetOperationsTypeScriptstylistic
regexConciseCharacterClassNegationsTypeScriptstylistic
regexContradictoryAssertionsTypeScriptlogical
regexControlCharacterEscapesTypeScriptlogical
regexControlCharactersTypeScriptlogical
regexDigitMatchersTypeScriptstylistic (strict)
regexDollarEscapesTypeScriptstylistic
regexDuplicateCharacterClassCharactersTypeScriptlogical
regexDuplicateDisjunctionsTypeScriptlogical
regexEmptyAlternativesTypeScriptlogical
regexEmptyCapturingGroupsTypeScriptlogical
regexEmptyCharacterClassesTypeScriptlogical
regexEmptyGroupsTypeScriptlogical
regexEmptyLazyQuantifiersTypeScriptlogical
regexEmptyLookaroundsAssertionsTypeScriptlogical
regexEmptyStringLiteralsTypeScriptlogical
regexEscapeBackspacesTypeScriptlogical
regexExecutorsTypeScriptstylistic (strict)
regexFlagsSortingstylistic
regexGraphemeStringLiteralsTypeScriptlogical (strict)
regexHexadecimalEscapesTypeScriptstylistic (strict)
regexIgnoreCaseFlagsTypeScriptlogical
regexInvisibleCharactersTypeScriptlogical
regexLegacyFeaturesTypeScriptlogical
regexLetterCasingTypeScriptstylistic (strict)
regexListsSortingstylistic
regexLiteralsTypeScriptlogical
regexLookaroundAssertionsTypeScriptstylistic (strict)
regexLookaroundQuantifierOptimizationsTypeScriptlogical
regexMatchNotationTypeScriptstylistic (strict)
regexMisleadingCapturingGroupsTypeScriptlogical
regexMisleadingQuantifiersTypeScriptlogical
regexMisleadingUnicodeCharactersTypeScriptlogical
regexNamedBackreferencesTypeScriptstylistic (strict)
regexNamedCaptureGroupsTypeScriptlogical
regexNamedReplacementsTypeScriptstylistic (strict)
regexNonStandardFlagsTypeScriptlogical
regexObscureRangesTypeScriptlogical
regexOctalEscapesTypeScriptlogical
regexPlusQuantifiersTypeScriptstylistic (strict)
regexPredefinedAssertionsTypeScriptstylistic
regexQuantifierOptimizationsTypeScriptlogical
regexQuestionQuantifiersTypeScriptstylistic (strict)
regexRepeatQuantifiersTypeScriptstylistic
regexResultArrayGroupsTypeScriptstylistic (strict)
regexSetOperationOptimizationsTypeScriptlogical
regexStandaloneBackslashesTypeScriptlogical
regexStarQuantifiersTypeScriptstylistic (strict)
regexSuperLinearBacktrackingTypeScriptlogical
regexSuperLinearMovesTypeScriptlogical
regexTestMethodsTypeScriptstylistic
regexUnicodeCodepointEscapesTypeScriptstylistic (strict)
regexUnicodeEscapesTypeScriptstylistic
regexUnicodeFlagTypeScript(none)
regexUnicodePropertiesTypeScriptstylistic
regexUnnecessaryAssertionsTypeScriptlogical
regexUnnecessaryBackreferencesTypeScriptlogical
regexUnnecessaryCharacterClassesTypeScriptlogical
regexUnnecessaryCharacterRangesTypeScriptlogical
regexUnnecessaryDisjunctionsTypeScriptlogical
regexUnnecessaryDollarReplacementsTypeScriptlogical
regexUnnecessaryEscapesTypeScriptstylistic
regexUnnecessaryLookaroundAssertionsTypeScriptlogical
regexUnnecessaryNestedAssertionsTypeScriptlogical
regexUnnecessaryNestedQuantifiersTypeScriptlogical
regexUnnecessaryNonCapturingGroupsTypeScriptstylistic (strict)
regexUnnecessaryNumericQuantifiersTypeScriptlogical
regexUnnecessaryOptionalAssertionsTypeScriptlogical
regexUnnecessaryReferentialBackreferencesTypeScriptlogical
regexUnnecessarySetOperandsTypeScriptlogical
regexUnusedCapturingGroupsTypeScriptlogical
regexUnusedFlagsTypeScriptlogical
regexUnusedLazyQuantifiersTypeScriptlogical
regexUnusedQuantifiersTypeScriptlogical
regexValidityTypeScriptlogical
regexWordMatchersTypeScriptstylistic (strict)
regexZeroQuantifiersTypeScriptlogical
removeEventListenerExpressionsDisallow inline function expressions in removeEventListener calls.Browserlogical
renderedLiteralLeaksJSXlogical (strict)
renderReturnsVuelogical
renderSetStatesReactlogical
repositoryDirectoryValidityPackageJSONlogical
repositoryShorthandPackageJSONlogical
repositoryValidityPackageJSONlogical
requireImportsTypeScriptlogical
responseMethodsTypeScriptstylistic
restrictedComponentPropsReact(none)
restrictedDomPropsReact(none)
restrictedElementsReact(none)
restrictedGlobalsTypeScript(none)
restrictedIdentifiersTypeScript(none)
restrictedImportsTypeScript(none)
restrictedMatchersVitest(none)
restrictedPropertiesTypeScript(none)
restrictedPropTypesReact(none)
restrictedSyntaxTypeScript(none)
restrictedTypesTypeScript(none)
restrictedViMethodsVitest(none)
returnAssignmentsReports using assignment expressions in return statements.TypeScriptstylistic
returnAwaitPromisesTypeScriptlogical
returnThisTypesTypeScriptlogical (strict)
roleRedundanciesReports redundant ARIA roles on elements with implicit roles.JSXlogical
roleRequiredAriaPropsReports ARIA roles missing their required ARIA properties.JSXlogical
roleSupportedAriaPropsReports ARIA properties that are not supported by an element's role.JSXlogical
roleTagsReports ARIA roles that have semantic HTML element equivalents.JSXlogical (strict)
ruleDescriptionsFlintlogical
rulePresetsFlintlogical
rulesOfHooksReactlogical
ruleURLsFlintlogical
scopePropsReports scope props on non-th elements.JSXlogical
scriptSetupExportsVuelogical
scriptsValidityPackageJSONlogical
scriptSyncsNext.jslogical
scriptUrlsReports javascript: URLs that can act as a form of eval.Browserlogical
scriptUrlsJSXlogical
selfAssignmentsReports self-assignments which have no effect and are likely errors.TypeScriptlogical
selfClosingTagsJSXstylistic
selfComparisonsReports comparing a value to itself.TypeScriptlogical (strict)
sequencesReports using the comma operator in expressions.TypeScriptuntyped
setDirectiveChildContentConflictsAstrological
setHasExistenceChecksTypeScriptstylistic (strict)
setHtmlDirectivesAstrosecurity
setsSortingstylistic
setSizeLengthChecksTypeScriptstylistic (strict)
setterReturnsTypeScriptuntyped
setTextDirectivesAstrological
shadowedRestrictedNamesReports variable declarations that shadow JavaScript's restricted names.TypeScriptuntyped
shadowsTypeScriptstylistic
showDirectiveValidityVuelogical
showWhensSolidJSstylistic
singleVariableDeclarationsTypeScriptlogical
sizeComparisonOperatorsTypeScriptstylistic (strict)
slotArgumentsVuelogical (strict)
slotDirectiveValidityVuelogical
slotsAsFunctionsVuelogical
slotStylesVuestylistic
snapshotLocalTextContextsVitestlogical
solidImportsSolidJSlogical
sparseArraysReports array literals with holes (sparse arrays).TypeScriptlogical
spreadAccumulatorsReports spread operations that accumulate values in loops, causing quadratic time complexity.Performancelogical
stateMutationsReactlogical
staticComponentsReactlogical
staticElementInteractionsReports static elements with event handlers that lack ARIA roles.JSXlogical
staticMemberOnlyClassesTypeScriptstylistic (strict)
stringCaseMismatchesTypeScriptlogical
stringCodePointsTypeScriptlogical (strict)
stringMappingKeysYAMLlogical (strict)
stringSliceMethodsTypeScriptstylistic (strict)
stringStartsEndsWithTypeScriptstylistic
stringTrimMethodsTypeScriptstylistic (strict)
structuredCloneMethodsTypeScriptstylistic (strict)
styledJsxInDocumentsNext.jslogical
stylePropObjectsReactlogical (strict)
stylePropValiditySolidJSuntyped
svgTitlesReports <svg> elements without a <title> child element.JSXlogical
switchCasesSortingstylistic
symbolDescriptionsReports Symbol() calls without description arguments.TypeScriptstylistic
tabIndexPositiveValuesReports positive tabIndex values.JSXlogical
tableColumnCountsMarkdownlogical
templateExpressionValuesTypeScriptlogical
templateKeysVuelogical
templateRootValidityVuelogical
templateShadowsVuelogical (strict)
templateVForOnChildrenVuelogical
testBodyExpectationsVitestlogical
testCaseAssertionsViteststylistic
testCaseDuplicatesReports test cases that are identical to previous test cases.Flintlogical
testCaseOnliesFlintlogical
testCasePaddingLinesViteststylistic (strict)
testCasesWithinDescribesViteststylistic (strict)
testConditionalsVitestlogical (strict)
testDefinitionFunctionsVitest(none)
testPrefixesViteststylistic
testShorthandsFlintstylistic
textareaMustacheChildrenVuelogical
textDirectiveValidityVuelogical
thisBeforeSuperTypeScriptuntyped
thisInTemplatesVuelogical (strict)
throwErrorsTypeScriptlogical
titleInDocumentHeadsNext.jslogical
titleRepeatsVitestlogical
titleValidityVitestlogical
toContainMatchersViteststylistic
toHaveLengthMatchersViteststylistic
topLevelAwaitsTypeScriptstylistic (strict)
transitionTogglesVuelogical
tripleSlashReferencesTypeScriptlogical
tripleSlashReferenceValidityTypeScriptlogical
tsCommentsTypeScriptlogical
tslintCommentsTypeScriptstylistic
typeAssertionsTypeScriptstylistic
typeConstituentDuplicatesTypeScriptlogical
typeExportsTypeScriptstylistic
typeImportsTypeScriptstylistic
typeofComparisonsReports typeof expressions that compare impossible string literals.TypeScriptuntyped
typePresencePackageJSONlogical
typeRequiredPackageJSONlogical
typesPresencePackageJSON(none)
typeValidityPackageJSONlogical
typosNext.jslogical
typosReactlogical
unassignedVariablesReports variables that are declared but never assigned a value.TypeScriptuntyped
unboundMethodsTypeScriptlogical
undefinedInitialValuesTypeScriptstylistic
undefinedTypeofChecksTypeScriptstylistic (strict)
undefinedVariablesReports using variables that are not defined.TypeScriptuntyped
unescapedEntitiesDisallow unescaped HTML entities in JSX text that may cause rendering issues.JSXstylistic
unicodeBOMsReports files with Unicode Byte Order Marks (BOMs).TypeScriptstylistic
unifiedSignaturesTypeScriptlogical (strict)
unionTypesSortingstylistic
unnecessaryBindTypeScriptlogical
unnecessaryBlocksReports standalone block statements that don't create a meaningful scope.TypeScriptstylistic
unnecessaryBooleanCastsTypeScriptstylistic
unnecessaryCatchesReports catch clauses that only rethrow the caught error without modification.TypeScriptlogical
unnecessaryComparisonsTypeScriptlogical
unnecessaryComputedKeysTypeScriptstylistic
unnecessaryConcatenationReports string concatenation using the + operator when both operands are string literals.TypeScriptstylistic
unnecessaryConditionsTypeScriptlogical
unnecessaryConstructorsTypeScriptstylistic
unnecessaryContinuesTypeScriptlogical
unnecessaryEscapesTypeScriptstylistic
unnecessaryFragmentsDisallow unnecessary JSX fragments that wrap a single child or have no children.JSXstylistic
unnecessaryFunctionCurriesTypeScriptlogical
unnecessaryLogicalComparisonsTypeScriptlogical
unnecessaryMathClampsTypeScriptlogical
unnecessaryNumericFractionsTypeScriptlogical
unnecessaryRenamesTypeScriptstylistic
unnecessaryReturnsTypeScriptstylistic
unnecessarySpreadsTypeScriptlogical
unnecessaryTemplateAttributesVuelogical
unnecessaryTemplateExpressionsTypeScriptlogical
unnecessaryTernariesTypeScriptstylistic (strict)
unnecessaryTypeAnnotationsTypeScriptstylistic
unnecessaryTypeArgumentsTypeScriptlogical
unnecessaryTypeAssertionsTypeScriptlogical
unnecessaryTypeConstraintsTypeScriptlogical
unnecessaryTypeConversionsTypeScriptlogical
unnecessaryTypeParametersTypeScriptlogical
unnecessaryUndefinedDefaultsTypeScriptlogical
unnecessaryUseStrictsTypeScriptlogical
unpublishedBinsNode.jslogical
unpublishedImportsNode.jslogical
unreachableStatementsTypeScriptuntyped
unsafeDeclarationmergingTypeScriptlogical
unsafeEnumComparisonsTypeScriptlogical
unsafeFinallyStatementsTypeScriptlogical
unsafeFunctionTypesTypeScriptlogical
unsafeInlineScriptsAstrosecurity
unsafeNegationsReports negating the left operand of in or instanceof relations.TypeScriptuntyped
unsafeOptionalChainsTypeScriptuntyped
unsafeToStringTypeScriptlogical
unsafeUnaryNegationsTypeScriptlogical
unsupportedGlobalsNode.jslogical
unsupportedNodeAPIsNode.jslogical
unsupportedSyntaxNode.jslogical
unsupportedSyntaxReactlogical
unusedClassComponentMethodsReactlogical
unusedComponentsVuelogical
unusedCssSelectorsAstrological
unusedExpressionsTypeScriptlogical
unusedLabelsTypeScriptstylistic
unusedMessageIdsFlintlogical
unusedPlaceholdersFlintlogical
unusedPrivateClassMembersTypeScriptlogical
unusedPropTypesReactlogical
unusedStateReactlogical
unusedStyleDefineVarsAstrological
unusedSwitchStatementsTypeScriptlogical
unusedValuesTypeScriptlogical
unusedVariablesTypeScriptlogical
unusedVariablesVuelogical
usageBeforeDefinitionTypeScriptuntyped
useMemoReturnsReactlogical
useStateDestructuresReactstylistic
useStrictDirectivesTypeScriptuntyped
valueSafetyReports JSON values that are unsafe for data interchange.JSONlogical
varDeclarationsTypeScriptstylistic
variableBlockScopeUsageTypeScriptuntyped
variableDeclarationsSortingstylistic
variableDeletionsReports attempting to delete variables with the delete operator.TypeScriptuntyped
variableRedeclarationsTypeScriptuntyped
versionPresencePackageJSONlogical
versionValidityPackageJSONlogical
vHtmlDirectivesVuelogical (strict)
vIfsWithVForsVuelogical
viNamespaceNamesVitest(none)
vitestGlobalImportsViteststylistic
voidOperatorReports using the void operator.TypeScriptstylistic
vuePackageImportsVuelogical
watchAfterAwaitsVuelogical
watchArrowFunctionsVuelogical
windowMessagingTargetOriginRequires specifying the targetOrigin argument when calling window.postMessage().Browserlogical
withStatementsTypeScriptlogical
workspacesValidityPackageJSONlogical
wrapperObjectTypesTypeScriptlogical
yamlKeysSortingstylistic
yamlSequenceValuesSortingstylistic
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.