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: 434
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
atomicUpdatesTypeScript
attributeEqualSignSpacesVueFormatting rule.
attributeLinebreaksVueFormatting rule.
attributeNameValidityVueGenerally handled by parsers.
attributesPerLineVueFormatting rule.
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
commentsJSONGenerally handled by parsers.
commentWarningsTypeScript
comparisonSequencesTypeScriptHandled by TypeScript / otherwise is stylistic.
compilesAstroHandled by the Astro compiler.
componentNameCasesJSXOverly opinionated and brittle.
componentOptimizationsReactOverly opinionated.
componentPropertySortingReactHandled by sorting plugin.
componentsPerFileReactOverly opinionated.
conditionalAssignmentsTypeScriptSuperseded by unnecessaryConditions.
conditionNegationsTypeScript
conditionOrderingTypeScript
consistentReturnsTypeScript
constantBinaryExpressionsTypeScriptSuperseded by unnecessaryConditions.
constantConditionsTypeScriptSuperseded by unnecessaryConditions.
constEnumsTypeScript
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 sorting plugin.
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.
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
duplicatePropsSolidJSSuperseded by jsx plugin's duplicateProps rule.
duplicateSpreadsJSX
emphasisMarkerSpacingMarkdown
emphasisSpacesMarkdownFormatting rule.
emphasisStylesMarkdownFormatting rule.
emptyTestTodosVitestOverly opinionated.
endingTernaryIfElsesTypeScript
enumInitializersTypeScript
equalityMatchersVitestOverly opinionated.
equalityOperatorNegationsTypeScript
equalsSpacingJSXFormatting rule.
evolvingVariableTypesTypeScript
exportDefaultTypeScript
exportGroupsTypeScript
exportLastTypeScript
exportsStyleNode.jsCJS-specific.
exportUniqueNamesTypeScript
expressionsPerLineJSXFormatting rule.
externalHttpImportsTypeScript
extraneousImportsNode.jsSuperseded by Knip
extraneousRequiresNode.jsSuperseded by Knip
filenameCasingTypeScript
filenameExtensionsJSXGenerally handled by parsers.
fileTrailingNewlinesMarkdownFormatting rule.
findDOMNodeCallsReactSuperseded by deprecated.
fixerReturnsFlint
floatingDecimalsJSONGenerally handled by parsers.
forInGuardsTypeScript
forwardRefArgumentsReact`React.forwardRef` is no longer necessary as of React 19.
functionBindsJSXOverly opinionated.
functionDeclarationStylesTypeScript
functionNameMatchesTypeScript
functionNamesTypeScript
functionReturnTypesTypeScript
globalBufferNode.js
globalConsoleNode.js
globalProcessNode.js
globalTextDecoderNode.js
globalTextEncoderNode.js
globalURLNode.js
globalURLSearchParamsNode.js
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
htmlQuotesVueFormatting rule.
htmlTagsSelfClosingVueFormatting rule.
identifierEscapeSequencesJSONGenerally handled by parsers.
identifierMatchesTypeScript
identifierNumbersJSONGenerally handled by parsers.
iifeReadabilityTypeScript
imageAltRedundancyJSX
implicitCoercionsTypeScript
importAbsolutePathsTypeScript
importAssertionsTypeScriptGenerally handled by parsers.
importDefaultsTypeScriptHandled by TypeScript
importDuplicatesTypeScript
importFirstTypeScript
importMaximumDependenciesTypeScript
importNameMatchesTypeScript
importNamespacePropertiesTypeScriptHandled by TypeScript
importNamespacesTypeScript
importsSortingTypeScript
indentsJSXFormatting rule.
indentsVueFormatting rule.
infinityJSONGenerally handled by parsers.
inlineCommentsTypeScript
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.
linkBlankLinesMarkdownFormatting rule.
linkImageStylesMarkdownFormatting rule.
linkSpacesMarkdown
listMarkerSpacesMarkdownFormatting rule.
listStylesMarkdownFormatting 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
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.
namespacesJSXGenerally handled by parsers.
namingConventionsTypeScript
nanJSONGenerally handled by parsers.
newlinesJSXFormatting rule.
newRequiresNode.js
nodeGlobalsNode.js
noScriptUrlSolidJSSuperseded by jsx plugin's duplicateProps rule.
nullComparisonsTypeScript
nullsTypeScript
numberKeyLiteralsTypeScript
numbersJSONGenerally handled by parsers.
numberToFixedDigitsTypeScript
numericConstantApproximationsTypeScript
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 noFloatingPromises.
prefixedClassLikesTypeScript
processEnvsNode.js
processExitThrowsNode.js
promiseAlwaysReturnTypeScriptSuperseded by noFloatingPromises.
promiseArgumentCountsTypeScript
promiseAwaitableCallbacksTypeScript
promiseAwaitableThensTypeScript
promiseCallbackFunctionsNode.js
promiseCatchableThensTypeScript
promiseCatchOrReturnTypeScriptSuperseded by noFloatingPromises.
promiseErrorFirstCallbacksTypeScriptSuperseded by noFloatingPromises.
promiseExpectChainsVitestSuperseded by noFloatingPromises.
promiseNestingTypeScript
promiseNewsTypeScript
promiseNewStaticsTypeScript
promiseNonSpecMethodsTypeScriptSuperseded by noFloatingPromises.
promiseParameterNamesTypeScript
promisesDNSNode.js
promisesFSNode.js
propDefaultsReactOverly opinionated.
properNamesMarkdownSuperseded by cspell.
propertyOrderingFlint
propIndentsJSXFormatting rule.
propNewlinesJSXFormatting rule.
propsSortingJSXSuperseded by sorting plugin
propsSpacesJSXFormatting rule.
propsSpreadsJSXOverly opinionated.
propTypesExactnessReactHandles an edge case in the no-longer-recommended propTypes package.
propTypesMutabilityReactOverly opinionated.
propTypesSortingReactHandled by sorting plugin.
prototypeIteratorsTypeScript
proxyApisSolidJSModern environments generally support Proxy.
reactJsxScopesReactGenerally handled by parsers.
readonlyClassPropertiesTypeScript
reflectAppliesTypeScript
regexConcisenessTypeScriptSuperseded by other regex cleanliness rules
regexConsecutiveSpacesTypeScript
regexDivisionStartsTypeScript
regexTopLevelDeclarationsTypeScript
regexUnicodeSetsFlagTypeScript
renderReturnsReact`render` is no longer recommended in modern React.
restrictedDirectivesTypeScript
restrictedExportsTypeScript
restrictedJSDocsTypeScript
restrictedRequiresNode.js
restSpreadPropertiesTypeScript
ruleAboutChangersFlint
scriptUrlsJSXNo longer necessary in modern browsers.
selfClosingTagsSolidJSSuperseded by js plugin's selfClosingTags rule.
setStatesReactOverly opinionated.
shoutyConstantsTypeScript
singleLineElementContentNewlinesVueFormatting rule.
slowTypesTypeScript
snapshotHintsVitestOverly opinionated.
snapshotInterpolationsVitestOverly opinionated.
snapshotSizesVitestOverly opinionated.
spacesVueFormatting rule.
spyOnMocksVitestOverly opinionated.
stateAccessesInSetsJSXOverly opinionated.
strictEqualityMatchersVitestOverly opinionated.
strictModeTypeScript
stringConcatenationTemplatesTypeScript
stringContentsTypeScript
stringRawEscapesTypeScript
stringReplaceAllRegexSearchesTypeScript
stringStartsEndsWithMethodsTypeScript
stringTemplateCurliesTypeScript
strongStylesMarkdownFormatting rule.
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
thisAliasesTypeScript
thisInStaticTypeScript
toBeObjectMatchersVitestOverly opinionated.
todoExpirationsTypeScript
todoTestSkipsVitestHandled by Vitest in CI mode.
topLevelInteroperabilityJSON
topLevelRequiresNode.jsCJS-specific.
toThrowMessagesVitestOverly opinionated.
trailingSpacesMarkdownFormatting rule.
typeChecksTypeErrorsTypeScript
ulIndentsMarkdownFormatting rule.
unassignedImportsTypeScript
undefinedJSONGenerally handled by parsers.
undefinedComponentsSolidJSHandled by ts plugin's undefinedVariables rule.
undefinedNamesTypeScript
underscoreNamesTypeScript
unicodeCodepointEscapesJSONGenerally handled by parsers.
unnecessaryLabelsTypeScript
unnecessaryPolyfillsTypeScriptSuperseded by the e18e initiative
unnecessaryStringRawsTypeScript
unnecessaryTokenRangesFlint
unpublishedRequiresNode.js
unreachableLoopsTypeScript
unusedCatchBindingsTypeScriptSuperseded by unusedVariables
unusedObjectPropertiesTypeScript
urlRelativityTypeScript
usesReactPragmasReactGenerally handled by parsers.
variableDeclarationInitializationsTypeScript
variableDeclarationSortingTypeScript
variablesOnTopTypeScript
verbatimModuleSyntaxTypeScript
vitestGlobalImportsVitestFor a no-longer-recommended globals style.
wrappedMultilinesJSXFormatting rule.
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.