Skip to content

All Rules

These rules will not be implemented as a part of Flint. They are all too opinionated and/or too niche to be kept in the Flint project. They’re free to be implemented as a community third-party Flint plugin.

Total count: 474
Flint RulePluginNotes
abbreviationsTypeScript
aboutSchemaDescriptionsFlint
aboutSchemasFlint
aboutSuggestionsFlint
aboutTypesFlint
accessorPairsTypeScript
adjacentInlineElementsJSXOverly opinionated.
argumentsArrayMethodsTypeScript
argumentsPropertiesTypeScript
arrayDestructuringSparsityTypeScript
arrayElementsSortingJSON
arrayFlatDepthMagicNumbersTypeScript
arrayJoinSeparatorsTypeScript
arrayMethodThisArgumentsTypeScript
arrayReducersTypeScript
arraySortCompareArgumentTypeScript
arrowBodyBracesTypeScript
arrowCallbacksTypeScript
asciiCharactersNode.js
assignmentOperationRefactorsTypeScript
asyncAwaitStatementsTypeScript
asyncStoresSvelteSvelte 4-exclusive rule.
atomicUpdatesTypeScript
attributeEqualSignSpacesSvelteFormatting rule.
attributeEqualSignSpacesVueFormatting rule.
attributeLinebreaksVueFormatting rule.
attributeNameValidityVueGenerally handled by parsers.
attributeOrderingSvelteSuperseded by the sorting plugin's jsxProps rules.
attributesLineLimitsSvelteFormatting rule.
attributesPerLineVueFormatting rule.
awaitInsidePromiseMethodsTypeScriptSuperseded by awaitThenable.
awaitMemberAccessesTypeScript
barrelFilesTypeScript
bigintLiteralsJSONGenerally handled by parsers.
binaryExpressionsJSONGenerally handled by parsers.
binaryNumericLiteralsJSONGenerally handled by parsers.
bitwiseOperatorLogicTypeScript
bitwiseOperatorsTypeScript
blankLineMultiplesMarkdownFormatting rule.
blockquoteSpacesMarkdownFormatting rule.
blockStatementsTypeScriptSuperseded by prettier-plugin-curly
booleanCoercionMatchersVitestOverly opinionated.
booleanLiteralParameterCommentsTypeScript
builtinPrototypeMethodAccessesTypeScript
callbackErrorHandlingNode.js
callbackErrorLiteralsNode.js
callbackReturnsNode.js
capitalizedConstructorsTypeScript
childrenCurlyBracesJSXFormatting rule.
classComponentDefinitionsReactcreate-react-class is long-outdated.
closingBracketNewlinesVueFormatting rule.
closingBracketSpacingJSXFormatting rule.
closingBracketSpacingVueFormatting rule.
closingTagSpacingJSXFormatting rule.
codeblockBlankLinesMarkdownFormatting rule.
codeBlockStylesMarkdownFormatting rule.
codeFenceStylesMarkdownFormatting rule.
commandOutputsMarkdownOverly opinionated.
commentCapitalizationTypeScript
commentDirectivesSvelteGenerally handled by parsers.
commentsJSONGenerally handled by parsers.
commentWarningsTypeScript
comparisonSequencesTypeScriptHandled by TypeScript / otherwise is stylistic.
compilesAstroHandled by the Astro compiler.
componentNameCasesJSXOverly opinionated and brittle.
componentOptimizationsReactOverly opinionated.
componentPropertySortingReactHandled by ts sorting preset.
componentsPerFileReactOverly opinionated.
conditionalAssignmentsTypeScriptSuperseded by unnecessaryConditions.
conditionNegationsTypeScript
conditionOrderingTypeScript
consistentReturnsTypeScript
constantBinaryExpressionsTypeScriptSuperseded by unnecessaryConditions.
constantConditionsTypeScriptSuperseded by unnecessaryConditions.
constEnumsTypeScript
constVariablesSvelteSuperseded by js plugin's constVariables rule.
continuesTypeScript
crossComponentPropTypesReactOverly opinionated and for the no-longer-recommended propTypes pattern
crossComponentPropTypesReactSuperseded by deprecated.
curlyNewlinesJSXFormatting rule.
curlySpacingJSXFormatting rule.
defaultCasesTypeScript
defaultImportRenamesTypeScript
defaultParameterReassignmentsTypeScript
defaultPropObjectValuesJSXOverly opinionated.
defaultPropsSoringReactHandled by ts sorting preset.
deprecatedAPIsNode.jsSuperseded by deprecated.
deprecatedAstroCanonicalURLAstroSuperseded by deprecated.
deprecatedAstroFetchContentAstroSuperseded by deprecated.
deprecatedAstroResolveAstroSuperseded by deprecated.
deprecatedBindSyncsVueSuperseded by deprecated.
deprecatedContextMethodsFlint
deprecatedDollarListenersVueSuperseded by deprecated.
deprecatedDollarScopedSlotsVueSuperseded by deprecated.
deprecatedEventsVueSuperseded by deprecated.
deprecatedGetEntryBySlugAstroSuperseded by deprecated.
deprecatedHtmlElementIsVueSuperseded by deprecated.
deprecatedInlineTemplatesVueSuperseded by deprecated.
deprecatedMessagePlaceholdersFlint
deprecatedMessageStringsFlint
deprecatedModelDefinitionsVueSuperseded by deprecated.
deprecatedReplacedByFlint
deprecatedReportAPIsFlint
deprecatedRouterLinkTagPropsVueSuperseded by deprecated.
deprecatedRuleFunctionsFlint
deprecatedSchemaDefaultsFlint
deprecatedScopeAttributesVueSuperseded by deprecated.
deprecatedSetDeletesVueSuperseded by deprecated.
deprecatedSlotAttributesVueSuperseded by deprecated.
deprecatedSlotScopeAttributesVueSuperseded by deprecated.
deprecatedTextReplacementsFlint
deprecatedVIsVueSuperseded by deprecated.
deprecatedVOnNativeModifiersVueSuperseded by deprecated.
deprecatedVOnNumberModifiersVueSuperseded by deprecated.
deprecatedVueConfigKeyCodesVueSuperseded by deprecated.
derivedCallbackNamingConsistencySvelteSvelte 4-exclusive rule.
destructuredStorePropsSvelteSvelte 4-exclusive rule.
destructuringTypeScript
directiveDisableSelectorsTypeScriptCore requires explicit disables
directiveDuplicateDisablesTypeScriptCore detects duplicate disables
directiveMisleadingEnablesTypeScriptCore requires explicit enables
directiveRestrictedDisablesTypeScript
directiveSelectorsTypeScriptHandled by Flint core
directiveUnknownRulesTypeScriptHandled by Flint core
directiveUnlimitedDisablesTypeScriptCore requires explicit disables
directiveUnusedTypeScriptHandled by Flint core
directiveUnusedDisablesTypeScriptCore detects unused disables
directiveUnusedEnablesTypeScriptCore detects unused enables
duplicateOnDirectivesSvelteSvelte 4-exclusive rule.
duplicatePropsSolidJSSuperseded by jsx plugin's duplicateProps rule.
duplicateSpreadsJSX
dynamicSlotNamesSvelteDeprecated. Now handled by the Svelte compiler.
emphasisMarkerSpacingMarkdown
emphasisSpacesMarkdownFormatting rule.
emphasisStylesMarkdownFormatting rule.
emptyTestTodosVitestOverly opinionated.
endingTernaryIfElsesTypeScript
equalityMatchersVitestOverly opinionated.
equalsSpacingJSXFormatting rule.
eventDispatcherTypesSvelteSvelte 4-exclusive rule.
exportDefaultTypeScript
exportGroupsTypeScript
exportLastTypeScript
exportsStyleNode.jsCJS-specific.
expressionsPerLineJSXFormatting rule.
externalHttpImportsTypeScript
extraneousRequiresNode.jsSuperseded by Knip
extraReactiveCurliesSvelteSvelte 4-exclusive rule.
filenameCasingTypeScript
filenameExtensionsJSXGenerally handled by parsers.
fileTrailingNewlinesMarkdownFormatting rule.
findDOMNodeCallsReactSuperseded by deprecated.
firstAttributeLinebreaksSvelteFormatting rule.
fixerReturnsFlint
floatingDecimalsJSONGenerally handled by parsers.
forwardRefArgumentsReact`React.forwardRef` is no longer necessary as of React 19.
functionBindsJSXOverly opinionated.
functionNamesTypeScript
functionReactivitySvelteSvelte 4-exclusive rule.
functionReturnTypesTypeScript
globalBufferNode.js
globalConsoleNode.js
globalProcessNode.js
globalTextDecoderNode.js
globalTextEncoderNode.js
globalURLNode.js
globalURLSearchParamsNode.js
gotosLackingBaseSvelteDeprecated. Superseded by unresolvedNavigations.
handlerNamesJSXOverly opinionated.
hardTabsMarkdownFormatting rule.
headingBlankLinesMarkdownFormatting rule.
headingClosingSpaceMultiplesMarkdownFormatting rule.
headingClosingSpaceMultiplesMarkdownFormatting rule.
headingClosingSpacesMarkdownFormatting rule.
headingIndentsMarkdownFormatting rule.
headingMissingSpacesMarkdownFormatting rule.
headingPresenceMarkdownOverly opinionated.
headingSpacesMarkdownI intend to write a Prettier plugin.
headingStylesMarkdownFormatting rule.
hexadecimalNumericLiteralsJSONGenerally handled by parsers.
hexEscapesTypeScript
hookContentsVitestOverly opinionated.
hooksVitestOverly opinionated.
hrStylesMarkdownFormatting rule.
htmlMarkdown
htmlClosingBracketNewLineSvelteFormatting rule.
htmlClosingBracketSpacingsSvelteFormatting rule.
htmlQuotesSvelteFormatting rule.
htmlQuotesVueFormatting rule.
htmlTagsSelfClosingVueFormatting rule.
identifierEscapeSequencesJSONGenerally handled by parsers.
identifierMatchesTypeScript
identifierNumbersJSONGenerally handled by parsers.
ignoredUnsubscribesSvelteSvelte 4-exclusive rule.
iifeReadabilityTypeScript
imageAltRedundancyJSX
immutableReactiveStatementsSvelteSvelte 4-exclusive rule.
implicitCoercionsTypeScript
importAbsolutePathsTypeScript
importAssertionsTypeScriptGenerally handled by parsers.
importDefaultsTypeScriptHandled by TypeScript
importDuplicatesTypeScript
importFirstTypeScript
importMaximumDependenciesTypeScript
importNameMatchesTypeScript
importNamespacePropertiesTypeScriptHandled by TypeScript
importNamespacesTypeScript
importsSortingTypeScript
indentationSvelteFormatting rule.
indentsJSXFormatting rule.
indentsVueFormatting rule.
infinityJSONGenerally handled by parsers.
inlineCommentsTypeScript
innerDeclarationsSvelte
innerDeclarationsTypeScript
isMountedReact`isMounted` is no longer present in modern React.
iterableKeysJSX
iteratorMethodFunctionReferencesTypeScript
jsdocAlignmentTypeScriptI intend to write a Prettier plugin.
jsdocBlankBlockDescriptionsTypeScript
jsdocConvertToJSDocCommentsTypeScript
jsdocDefaultsTypeScript
jsdocDefinedTypesTypeScript
jsdocDescriptionCompleteSentencesTypeScript
jsdocDescriptionsTypeScript
jsdocExamplesTypeScript
jsdocFileOverviewsTypeScript
jsdocImportsAsDependenciesTypeScript
jsdocIndentationTypeScriptI intend to write a Prettier plugin.
jsdocLineAlignmentTypeScriptI intend to write a Prettier plugin.
jsdocMatchDescriptionsTypeScript
jsdocMatchNamesTypeScript
jsdocMissingSyntaxTypeScript
jsdocParameterDescriptionsTypeScript
jsdocParametersTypeScript
jsdocParameterTypesTypeScript
jsdocPropertiesTypeScript
jsdocPropertyDescriptionsTypeScript
jsdocPropertyTypesTypeScript
jsdocRequiredTypeScript
jsdocReturnDescriptionsTypeScript
jsdocReturnsTypeScript
jsdocReturnTypesTypeScript
jsdocTagLinesTypeScript
jsdocTemplatesTypeScript
jsdocTextEscapingTypeScript
jsdocThrowsTypeScript
jsonImportAttributesTypeScript
keyCasingJSON
keyContentsJSON
labelsTypeScript
labelVariableNamesTypeScript
lifecycleMethodArrowFunctionsJSXOverly opinionated.
liIndentsMarkdownFormatting rule.
lineLengthsMarkdownFormatting rule.
linesPerBlockLimitsSvelteOverly opinionated.
linkBlankLinesMarkdownFormatting rule.
linkImageStylesMarkdownFormatting rule.
linkSpacesMarkdown
listMarkerSpacesMarkdownFormatting rule.
listStylesMarkdownFormatting rule.
literalReactivitySvelteSvelte 4-exclusive rule.
literalsJSXOverly opinionated.
loopConditionConstantsTypeScript
magicNumbersTypeScript
mappedObjectSpreadsPerformance
mappingKeyCasingYAML
mathRangeTernariesTypeScript
mathTruncationOperatorsTypeScript
maximumChildrenDepthJSXOverly opinionated.
maximumClassesPerFileTypeScript
maximumComplexityTypeScript
maximumComponentsPerFileVueOverly opinionated.
maximumDepthTypeScript
maximumExpectsVitestOverly opinionated.
maximumIdentifierLengthsTypeScript
maximumLinesPerFileTypeScript
maximumLinesPerFunctionTypeScript
maximumNestedCallbacksTypeScript
maximumNestedDescribesVitestOverly opinionated.
maximumParametersTypeScript
maximumPropsPerLineJSXFormatting rule.
maximumStatementsTypeScript
memberAccessibilityTypeScript
memberOrderingsTypeScriptSuperseded by sorting plugin rules.
messageIdMismatchesFlint
misleadingSemicolonsJSX
misleadingShorthandAssignmentsTypeScript
misleadingThenPropertiesTypeScript
missingImportsNode.js
missingRequiresNode.js
mixedRequiresNode.jsSuperseded by ESM and ordering rules.
mocksDirectoryImportsVitestOverly opinionated.
moduleBoundaryTypesTypeScript
moduleFormatsTypeScript
moduleImportStylesTypeScript
multilineElementContentNewlinesVueFormatting rule.
multilineStringsTypeScript
multipleElseIfSwitchesTypeScript
mustacheInterpolationSpacesVueFormatting rule.
mustacheSpacingsSvelteFormatting rule.
namespacesJSXGenerally handled by parsers.
namingConventionsTypeScript
nanJSONGenerally handled by parsers.
navigationLackingBaseSvelteDeprecated. Superseded by unresolvedNavigations.
newlinesJSXFormatting rule.
newRequiresNode.js
nodeGlobalsNode.js
nonFunctionHandlersSvelteSvelte 4-exclusive rule.
noScriptUrlSolidJSSuperseded by jsx plugin's duplicateProps rule.
nullsTypeScript
numberKeyLiteralsTypeScript
numbersJSONGenerally handled by parsers.
numberToFixedDigitsTypeScript
numericConstantApproximationsTypeScript
numericLiteralCasingTypeScriptFormatting rule.
numericSeparatorsJSONGenerally handled by parsers.
objectDefaultParametersTypeScript
objectLiteralComparisonsTypeScript
octalEscapeSequencesJSONGenerally handled by parsers.
octalLiteralsJSONGenerally handled by parsers.
octalNumericLiteralsJSONGenerally handled by parsers.
optionalChainExpressionsTypeScript
optionDefaultsFlint
parameterPropertiesTypeScript
parenthesesJSONGenerally handled by parsers.
parsingErrorsVueGenerally handled by parsers.
pathConcatenationsNode.js
plusOperatorsJSONGenerally handled by parsers.
plusPlusOperatorsTypeScript
pollingAwaitsVitestSuperseded by floatingPromises.
prefixedClassLikesTypeScript
processEnvsNode.js
processExitThrowsNode.js
promiseAlwaysReturnTypeScriptSuperseded by floatingPromises.
promiseArgumentCountsTypeScript
promiseAwaitableCallbacksTypeScript
promiseAwaitableThensTypeScript
promiseCallbackFunctionsNode.js
promiseCatchableThensTypeScript
promiseCatchOrReturnTypeScriptSuperseded by floatingPromises.
promiseErrorFirstCallbacksTypeScriptSuperseded by floatingPromises.
promiseExecutorReturnsTypeScriptSuperseded by awaitThenable.
promiseExpectChainsVitestSuperseded by floatingPromises.
promiseFinallyReturnsTypeScriptLargely covered by returnVoidSafety.
promiseNestingTypeScript
promiseNewsTypeScript
promiseNewStaticsTypeScript
promiseNonSpecMethodsTypeScriptSuperseded by floatingPromises.
promiseParameterNamesTypeScript
promisesDNSNode.js
promisesFSNode.js
propDefaultsReactOverly opinionated.
properNamesMarkdownSuperseded by cspell.
propertyOrderingFlint
propIndentsJSXFormatting rule.
propNewlinesJSXFormatting rule.
propsSortingJSXSuperseded by jsx sorting preset
propsSpacesJSXFormatting rule.
propsSpreadsJSXOverly opinionated.
propTypesExactnessReactHandles an edge case in the no-longer-recommended propTypes package.
propTypesMutabilityReactOverly opinionated.
propTypesSortingReactHandled by ts sorting preset.
prototypeIteratorsTypeScript
proxyApisSolidJSModern environments generally support Proxy.
reactJsxScopesReactGenerally handled by parsers.
readonlyClassPropertiesTypeScript
readonlyParameterTypesTypeScriptBetter suited to a functional/immutable-focused plugin.
reflectAppliesTypeScript
regexConcisenessTypeScriptSuperseded by other regex cleanliness rules
regexConsecutiveSpacesTypeScript
regexDivisionStartsTypeScript
regexLegacyFeaturesTypeScriptSuperseded by deprecated.
regexTopLevelDeclarationsTypeScript
regexUnicodeSetsFlagTypeScript
renderReturnsReact`render` is no longer recommended in modern React.
requireVariablesTypeScript
restrictedDirectivesTypeScript
restrictedExportsTypeScript
restrictedHtmlElementsSvelteSuperseded by js plugin's restrictedSyntax rule.
restrictedJSDocsTypeScript
restrictedRequiresNode.js
restSpreadPropertiesTypeScript
ruleAboutChangersFlint
scriptUrlsJSXNo longer necessary in modern browsers.
selfClosingTagsSolidJSSuperseded by js plugin's selfClosingTags rule.
setStatesReactOverly opinionated.
shoutyConstantsTypeScript
singleLineElementContentNewlinesVueFormatting rule.
slotTypesSvelteSvelte 4-exclusive rule.
slowTypesTypeScript
snapshotHintsVitestOverly opinionated.
snapshotInterpolationsVitestOverly opinionated.
snapshotSizesVitestOverly opinionated.
spacesVueFormatting rule.
spyOnMocksVitestOverly opinionated.
stateAccessesInSetsJSXOverly opinionated.
storeCallbackSetParametersSvelteSvelte 4-exclusive rule.
storeInitializationsSvelteSvelte 4-exclusive rule.
storeReactiveAccessSvelteSvelte 4-exclusive rule.
strictEqualityMatchersVitestOverly opinionated.
strictEventsSvelteSvelte 4-exclusive rule.
strictModeTypeScript
stringConcatenationTemplatesTypeScript
stringContentsTypeScript
stringRawEscapesTypeScript
stringReplaceAllRegexSearchesTypeScript
stringStartsEndsWithMethodsTypeScript
stringTemplateCurliesTypeScript
stringTrimMethodsTypeScriptSuperseded by deprecated.
strongStylesMarkdownFormatting rule.
svelteSystemSvelteGenerally handled by parsers.
switchCaseBracesTypeScript
switchExhaustivenessTypeScript
syncFunctionAwaitsTypeScriptGenerally handled by parsers.
syncFunctionInAsyncFunctionsNode.js
synchronousMethodsNode.js
tableBlankLinesMarkdownFormatting rule.
tableColumnStylesMarkdownFormatting rule.
tablePipeStylesMarkdownFormatting rule.
tagSpacesJSXFormatting rule.
templateIndentsTypeScript
templateLiteralsJSONGenerally handled by parsers.
ternaryNestingTypeScript
ternaryOperatorsTypeScript
testCaseOnliesVitestHandled by Vitest in CI mode.
testCaseTitlesVitestOverly opinionated.
testConditionalDefinitionsVitestOverly opinionated.
testDisablesVitestHandled by Vitest in CI mode.
testNamesFlint
testOutputNullsFlint
testOutputsFlint
testPropertyOrdersFlint
testReturnStatementsVitestOverly opinionated, and largely handled by TypeScript.
textEncodingCasesTypeScript
thisInStaticTypeScript
toBeObjectMatchersVitestOverly opinionated.
todoExpirationsTypeScript
todoTestSkipsVitestHandled by Vitest in CI mode.
topLevelInteroperabilityJSON
topLevelRequiresNode.jsCJS-specific.
toThrowMessagesVitestOverly opinionated.
trailingSpacesMarkdownFormatting rule.
trailingSpacesSvelte
typeAliasesTypeScript
typeAnnotationsTypeScript
typeChecksTypeErrorsTypeScript
ulIndentsMarkdownFormatting rule.
unassignedImportsTypeScript
undefinedJSONGenerally handled by parsers.
undefinedComponentsSolidJSHandled by ts plugin's undefinedVariables rule.
undefinedNamesTypeScript
underscoreNamesTypeScript
unicodeCodepointEscapesJSONGenerally handled by parsers.
unnecessaryConditionsSvelteDeprecated. No longer needed when using svelte-eslint-parser>=v0.19.0.
unnecessaryLabelsTypeScript
unnecessaryPolyfillsTypeScriptSuperseded by the e18e initiative
unnecessaryStringRawsTypeScript
unnecessaryTokenRangesFlint
unpublishedRequiresNode.js
unreachableLoopsTypeScript
unsupportedGlobalsNode.js
unsupportedSyntaxNode.js
unusedCatchBindingsTypeScriptSuperseded by unusedVariables
unusedObjectPropertiesTypeScript
urlRelativityTypeScript
usesReactPragmasReactGenerally handled by parsers.
validCompilationsSvelteProvided by language reports.
variableDeclarationInitializationsTypeScript
variableDeclarationSortingTypeScript
variablesOnTopTypeScript
verbatimModuleSyntaxTypeScript
vitestGlobalImportsVitestFor a no-longer-recommended globals style.
wrappedMultilinesJSXFormatting rule.
Made with ❤️‍🔥 around the world by the Flint team and contributors.