Flint's Rules
Flint will provide a comprehensive set of rules for all languages common to most typical web development projects. Rules are grouped into plugins that you can opt into as you choose.
Plugins are grouped into two categories:
- Core Plugins: These come as part of the
flintpackage on npm. They’re applicable to any project using the language they lint for. - Focused Plugins: These are for specific areas of projects or code styles.
They come in separate npm packages under
@flint.fyi/.
Core Plugins
Section titled “Core Plugins”These come as part of the flint package on npm.
They’re applicable to any project using the language they lint for.
- JSON Rules for linting
.jsonfiles containing arbitrary data in the JavaScript Object Notation (JSON) format. - Markdown Rules for linting
.mdfiles containing Markdown, the lightweight markup language. - PackageJSON Rules for linting Node.js
package.jsonmanifest files in repositories and workspaces. - TypeScript (and JavaScript) Rules for linting JavaScript and TypeScript code, including the latest and greatest powerful typed linting rules.
- YAML Rules for linting
.yaml/.ymlfiles containing arbitrary data in the Yet Another Markup Language (YAML) format.
Focused Plugins
Section titled “Focused Plugins”These are for specific areas of projects or code styles.
They come in separate npm packages under @flint.fyi/.
- Browser Rules for code that runs in browsers and other environments with DOM (Document Object Model) elements.
- CSpell Rules that detect misspelling typos in source files using the general-purpose code-optimized "CSpell" spell-checker.
- Flint Rules for writing third-party Flint plugins and custom rules. Meta!
- JSX Rules for code that describes UI with the "JSX" markup language, commonly in
.jsxand/or.tsxfiles. - Node.js Rules for code that runs in Node.js and other server runtimes that include Node.js-like APIs.
- Performance Rules for specialized code designed specifically to be run in performance-critical "hot paths".
- Sorting Rules that automatically sort any and all possible aspects of code alphabetically, such as imports and properties.
These tables contain all the rules considered for inclusion in Flint. That includes every non-deprecated rule provided by >=1 popular linter.
Implementing
Section titled “Implementing”These rules will be implemented as a part of Flint. Each is equivalent to at least one existing rule in another linter.
Implemented: 142 of 596 (23.8%)
| Flint Rule | Plugin | Preset |
|---|---|---|
accessKeysDisallow the use of the accessKey / accesskey attribute on JSX elements. | JSX | Logical |
accessorThisRecursion | TypeScript | Logical (Strict) |
alertsReports uses of the global alert/confirm/prompt dialog APIs. | Browser | Logical |
altTextsReports elements that require alt text but are missing it. | JSX | Logical |
anchorAmbiguousTextReports anchor elements with ambiguous text that doesn't describe the link destination. | JSX | Logical (Strict) |
anchorContentReports anchor elements without accessible content. | JSX | Logical |
anchorValidityReports invalid usage of anchor elements. | JSX | Logical |
anyArguments | TypeScript | Logical |
anyAssignments | TypeScript | Logical |
anyCalls | TypeScript | Logical |
anyMemberAccess | TypeScript | Logical |
anyReturnsReports returning a value with type any from a function. | TypeScript | Logical |
arguments | TypeScript | Logical |
ariaActiveDescendantTabIndexReports elements with aria-activedescendant without tabIndex. | JSX | Logical |
ariaHiddenFocusablesReports elements with aria-hidden='true' that are focusable. | JSX | Logical (Strict) |
ariaPropsReports invalid ARIA properties. | JSX | Logical |
ariaPropTypesReports ARIA properties with invalid value types. | JSX | Logical |
ariaRoleValidityReports invalid or abstract ARIA roles. | JSX | Logical |
ariaUnsupportedElementsReports ARIA attributes on elements that don't support them. | JSX | Logical |
arrayCallbackReturns | TypeScript | Untyped |
arrayConstructors | TypeScript | Logical |
arrayDeleteUnnecessaryCounts | TypeScript | Stylistic |
arrayElementDeletions | TypeScript | Logical |
arrayEmptyCallbackSlots | TypeScript | Logical |
arrayExistenceChecksConsistency | TypeScript | Stylistic |
arrayFilteredFinds | TypeScript | Stylistic (Strict) |
arrayFinds | TypeScript | Stylistic |
arrayFlatMapMethods | TypeScript | Stylistic (Strict) |
arrayFlatMethods | TypeScript | Stylistic (Strict) |
arrayFlatUnnecessaryDepths | TypeScript | Stylistic |
arrayIncludes | TypeScript | Stylistic |
arrayIncludesMethods | TypeScript | Stylistic (Strict) |
arrayIndexOfMethods | TypeScript | Stylistic (Strict) |
arrayLoops | TypeScript | Stylistic |
arrayMapIdentities | TypeScript | Logical |
arrayMutableReverses | TypeScript | Stylistic |
arrayMutableSorts | TypeScript | Stylistic |
arraySliceUnnecessaryEnd | TypeScript | Stylistic |
arraySomeMethods | TypeScript | Stylistic (Strict) |
arrayTernarySpreadingConsistency | TypeScript | Stylistic |
arrayTypes | TypeScript | Stylistic |
arrayUnnecessaryLengthChecks | TypeScript | Logical |
asConstAssertions | TypeScript | Stylistic |
assertStrictPrefer strict assertion mode from Node.js for better error messages and behavior. | Node | Logical |
assertStylesPrefer assert.ok() over assert() for explicit intent and better readability. | Node | Stylistic |
assignmentOperatorShorthands | TypeScript | Stylistic |
asyncFunctionAwaits | TypeScript | Logical |
asyncPromiseExecutorsReports using async functions as Promise executor functions. | TypeScript | Logical |
asyncUnnecessaryPromiseWrappers | TypeScript | Logical |
atAccesses | TypeScript | Stylistic (Strict) |
authorPresence | PackageJSON | None |
authorValidity | PackageJSON | Logical |
autocompleteEnsure the autocomplete attribute is correct and suitable for the form field. | JSX | Logical |
autoFocusPropsReports autoFocus props that are not set to false. | JSX | Logical |
awaitInsidePromiseMethods | TypeScript | Logical (Strict) |
awaitThenable | TypeScript | Logical |
bareUrlsReports bare URLs that should be formatted as autolinks or links. | Markdown | Stylistic (Strict) |
binValidity | PackageJSON | Logical |
blobReadingMethodsPrefer direct Blob reading methods over wrapping in Response for simpler code. | Node | Stylistic |
blockMappings | YAML | Stylistic |
blockquoteBlankLineMultiples | Markdown | Stylistic (Strict) |
blockSequences | YAML | Stylistic |
booleanValuesPrefer shorthand boolean attributes over explicit {true} values in JSX. | JSX | Stylistic |
bracedStatementsDisallow unnecessary JSX curly braces around literals and JSX elements. | JSX | Stylistic |
bufferAllocatorsPrefer modern Buffer allocation methods over the deprecated Buffer constructor. | Node | Logical |
bugsPresence | PackageJSON | None |
builtinCoercions | TypeScript | Stylistic (Strict) |
builtinConstructorNews | TypeScript | Stylistic |
bundleDependenciesPresence | PackageJSON | None |
bundleDependenciesValidity | PackageJSON | Logical |
buttonTypesReports button elements without an explicit type attribute. | JSX | logical |
caseDeclarationsReports lexical declarations in case clauses without wrapping them in blocks. | TypeScript | Untyped |
caseDuplicatesReports switch statements with duplicate case clause test expressions. | TypeScript | Logical |
caseFallthroughs | TypeScript | Logical |
catchCallbackTypes | TypeScript | Logical |
caughtErrorCauses | TypeScript | Logical (Strict) |
caughtVariableNames | TypeScript | Stylistic (Strict) |
chainedAssignmentsReports using chained assignment expressions (e.g., a = b = c). | TypeScript | Stylistic |
charAtComparisons | TypeScript | Logical |
childrenPropsReports usage of the children prop. | JSX | Stylistic |
classAssignmentsReports reassigning class declarations. | TypeScript | Untyped |
classes | Sorting | Stylistic |
classFieldDeclarations | TypeScript | Untyped |
classListTogglesPrefer using classList.toggle() over conditional classList.add() and classList.remove(). | Browser | Stylistic |
classLiteralProperties | TypeScript | Stylistic |
classMemberDuplicates | TypeScript | Untyped |
classMethodsThis | TypeScript | Stylistic (Strict) |
clickEventKeyEventsReports onClick without keyboard event handlers. | JSX | Logical |
codeSpaces | Markdown | Stylistic |
combinedPushes | TypeScript | Stylistic (Strict) |
commentTextNodesReports JSX text nodes that contain comment syntax but are rendered as text. | JSX | Logical |
configValidity | PackageJSON | Logical |
consecutiveNonNullAssertionsReports unnecessary extra non-null assertions. | TypeScript | Stylistic |
consoleCalls | TypeScript | None |
consoleSpaces | Node | Stylistic (Strict) |
constantAssignmentsReports attempting to reassign variables declared with const. | TypeScript | Untyped |
constructorReturnsReports returning values from constructor functions. | TypeScript | Untyped |
constructorSupers | TypeScript | Untyped |
constVariables | TypeScript | Logical |
cpuValidity | PackageJSON | Logical |
dateConstructorClones | TypeScript | Logical |
dateNowTimestamps | TypeScript | Logical (Strict) |
debuggerStatementsReports using debugger statements. | TypeScript | Logical |
decorators | Sorting | Stylistic |
defaultCaseLastReports switch statements where the default clause is not last. | TypeScript | Logical |
defaultParameterLast | TypeScript | Untyped |
definitionContentsReports definitions with empty URLs or only empty fragments. | Markdown | Logical |
definitionDuplicatesReports duplicate definition identifiers (case-insensitive). | Markdown | Logical |
definitionUsesReports unused reference definitions. | Markdown | Logical |
deletesReports using the delete operator. | Performance | Logical |
dependenciesPresence | PackageJSON | None |
dependenciesValidity | PackageJSON | Logical |
dependencyRanges | PackageJSON | None |
dependencyUniqueness | PackageJSON | Logical |
deprecated | TypeScript | Logical |
descriptionPresence | PackageJSON | Logical |
descriptionValidity | PackageJSON | Logical |
destructuringConsistency | TypeScript | Stylistic (Strict) |
devDependenciesPresence | PackageJSON | None |
devDependenciesValidity | PackageJSON | Logical |
directivePairs | TypeScript | Logical (Strict) |
directiveRequireDescriptions | TypeScript | Stylistic (Strict) |
directoriesValidity | PackageJSON | Logical |
distractingElementsReports distracting elements like <marquee> and <blink>. | JSX | Logical |
documentCookiesReports uses of document.cookie which can be error-prone and has security implications. | Browser | Logical (Strict) |
duplicateArgumentsReports functions with duplicate parameter names in their signatures. | TypeScript | Untyped |
dynamicDeletes | TypeScript | Logical |
elementChildrenValidityReports void DOM elements that have children, which is invalid HTML. | JSX | Logical (Strict) |
elseIfDuplicatesReports duplicate conditions in if-else-if chains that make code unreachable. | TypeScript | Logical |
elseReturns | TypeScript | Stylistic (Strict) |
emptyBlocksReports empty block statements that should contain code. | TypeScript | Stylistic |
emptyDestructuresReports using empty destructuring patterns that destructure no values. | TypeScript | Logical |
emptyDocuments | YAML | Logical |
emptyEnums | TypeScript | Logical |
emptyExports | TypeScript | Logical |
emptyFields | PackageJSON | Logical |
emptyFiles | TypeScript | Stylistic (Strict) |
emptyFunctions | TypeScript | Stylistic (Strict) |
emptyMappingKeysReports empty mapping keys. | YAML | Logical |
emptyMappingValues | YAML | Logical |
emptyModuleAttributes | TypeScript | Stylistic |
emptyObjectTypes | TypeScript | Logical |
emptySequenceEntries | YAML | Logical |
emptyStaticBlocksReports empty static initialization blocks within class declarations. | TypeScript | Stylistic |
emptyTypeParameterLists | TypeScript | Stylistic |
enginesPresence | PackageJSON | None |
enumMemberLiterals | TypeScript | Logical |
enumMixedValues | TypeScript | Logical |
enumValueConsistency | TypeScript | Logical |
enumValueDuplicates | TypeScript | Logical |
equalityOperators | TypeScript | Logical |
errorMessages | TypeScript | Logical (Strict) |
errorSubclassProperties | TypeScript | Logical (Strict) |
errorUnnecessaryCaptureStackTraces | TypeScript | Logical |
escapeSequenceCasing | TypeScript | Stylistic (Strict) |
evals | TypeScript | Logical |
eventClassesPrefer EventTarget over EventEmitter for cross-platform compatibility. | Node | Logical (Strict) |
eventListenerSubscriptionsPrefer addEventListener over assigning to on* event handler properties. | Browser | Logical (Strict) |
exceptionAssignmentsReports reassigning exception parameters in catch clauses. | TypeScript | Logical |
explicitAnys | TypeScript | Logical |
exponentiationOperators | TypeScript | Stylistic |
exportFromImports | TypeScript | Stylistic |
exportMutables | TypeScript | Logical |
exports | Sorting | Stylistic |
exportsAssignmentsPrevent assignment to the exports variable in CommonJS modules. | Node | Logical |
exportsValidity | PackageJSON | Logical |
extraneousClasses | TypeScript | Logical (Strict) |
fencedCodeLanguagesReports fenced code blocks without a language specified. | Markdown | Stylistic (Strict) |
fetchMethodBodies | TypeScript | Logical |
fileExtensions | YAML | Stylistic (Strict) |
filePathsFromImportMeta | Node | Stylistic (Strict) |
fileReadJSONBuffers | Node | Stylistic (Strict) |
filesPresence | PackageJSON | None |
filesRedundancy | PackageJSON | Logical |
filesValidity | PackageJSON | Logical |
floatingPromises | TypeScript | Logical |
forDirectionsReports for loops with counter variables that move in the wrong direction. | TypeScript | Stylistic |
forInArraysReports iterating over an array with a for-in loop. | TypeScript | Logical |
functionAssignmentsReports reassigning variables declared with function declarations. | TypeScript | Untyped |
functionCallSpreads | TypeScript | Stylistic |
functionDefinitionScopeConsistency | TypeScript | Stylistic (Strict) |
functionNewCallsReports using the Function constructor to create functions from strings. | TypeScript | Logical |
functionTypeDeclarations | TypeScript | Stylistic |
generatorFunctionYieldsReports generator functions that do not yield values. | TypeScript | Logical |
genericConstructorCalls | TypeScript | Stylistic |
getterReturns | TypeScript | Untyped |
getterSetterPairedTypes | TypeScript | Logical |
globalAssignmentsReports attempting to assign to read-only global variables such as undefined, NaN, Infinity, Object, etc. | TypeScript | Untyped |
globalObjectCallsReports calling global objects like Math, JSON, or Reflect as functions. | TypeScript | Untyped |
globalThisAliases | TypeScript | Stylistic (Strict) |
groupedAccessorPairs | TypeScript | Stylistic |
hashbangs | Node | Logical |
headingContentsReports heading elements without accessible content. | JSX | Logical |
headingDuplicates | Markdown | Stylistic (Strict) |
headingEmphasisEquivalents | Markdown | Stylistic (Strict) |
headingIncrementsReports heading levels incrementing by more than one. | Markdown | Logical |
headingRootDuplicatesReports multiple H1 headings in the same document. | Markdown | Logical (Strict) |
headingRootPresence | Markdown | Logical (Strict) |
headingTrailingPunctuation | Markdown | Stylistic (Strict) |
heritageClauses | Sorting | Stylistic |
homepageValidity | PackageJSON | Logical |
htmlLangsReports <html> elements without a lang prop. | JSX | Logical |
iframeTitlesReports <iframe> elements without a title prop. | JSX | Logical |
imageAltTextsReports images without alternative text. | Markdown | Logical |
imageContentsReports images with empty URLs or only empty fragments. | Markdown | Logical |
implicitGlobalsPrevents implicit global variable declarations in browser scripts. | Browser | Logical |
impliedEvals | TypeScript | Logical |
importAssignments | TypeScript | Untyped |
importCycles | TypeScript | Stylistic |
importedNamespaceDynamicAccessesDisallow computed member access on imported namespace identifiers. | Performance | Logical |
importEmptyBlocks | TypeScript | Logical |
importExtraneousDependencies | TypeScript | Logical (Strict) |
importFileExtensions | Node | None |
importSelf | TypeScript | Stylistic |
importTypeSideEffects | TypeScript | None |
importUnnecessaryPathSegments | TypeScript | Stylistic |
indexedObjectTypes | TypeScript | Stylistic |
instanceOfArrays | TypeScript | Logical |
interactiveElementRolesReports interactive elements with non-interactive ARIA roles. | JSX | Logical |
interactiveElementsFocusableReports interactive elements that are not focusable via keyboard. | JSX | Logical |
interfaces | Sorting | Stylistic |
intersectionTypes | Sorting | Stylistic |
invalidCodeLinesReports cases for invalid code that isn't formatted across lines. | Flint | Logical |
invalidThis | TypeScript | Untyped |
invalidVoidTypes | TypeScript | Logical (Strict) |
irregularWhitespace | YAML | Stylistic |
isNaNComparisons | TypeScript | Logical |
jsdocAccessTags | TypeScript | Stylistic |
jsdocAsterisks | TypeScript | Stylistic (Strict) |
jsdocEmptyBlocks | TypeScript | Stylistic |
jsdocEmptyTags | TypeScript | Stylistic |
jsdocImplementsTags | TypeScript | Stylistic |
jsdocInformativeDocs | TypeScript | Stylistic (Strict) |
jsdocMisleadingBlocks | TypeScript | Stylistic (Strict) |
jsdocMultilineBlocks | TypeScript | Stylistic (Strict) |
jsdocParameterDescriptionHyphens | TypeScript | Stylistic (Strict) |
jsdocParameterNames | TypeScript | Stylistic |
jsdocPropertyNames | TypeScript | Stylistic |
jsdocRedundantTypes | TypeScript | Stylistic |
jsdocTagNames | TypeScript | Stylistic (Strict) |
jsdocTags | Sorting | Stylistic |
jsdocTemplateNames | TypeScript | Stylistic |
jsdocTypesSyntax | TypeScript | Stylistic |
jsdocUnnecessaryReturns | TypeScript | Stylistic |
jsdocUnnecessaryYields | TypeScript | Stylistic |
jsdocValidTypes | TypeScript | Stylistic |
jsdocValues | TypeScript | Stylistic |
jsdocYields | TypeScript | Stylistic |
jsonKeys | Sorting | Stylistic |
jsxProps | Sorting | Stylistic |
keyboardEventKeysPrefer KeyboardEvent.key over deprecated properties like keyCode, charCode, and which. | Browser | Logical |
keyDuplicatesReports unnecessary duplicate keys that override previous values. | JSON | Logical |
keyNormalizationReports object keys that are not normalized using Unicode normalization forms. | JSON | Logical |
keywordsPresence | PackageJSON | None |
keywordsValidity | PackageJSON | Logical |
labelAssociatedControlsReports <label> elements without an associated control element. | JSX | Logical |
labelReferencesReports missing label references. | Markdown | Logical |
labelReferenceValidityReports invalid label references with whitespace. | Markdown | Logical |
langValidityReports invalid lang attribute values. | JSX | Logical (Strict) |
licenseRequired | PackageJSON | Logical |
licenseValidity | PackageJSON | Logical |
linkContentsReports links with empty URLs or only empty fragments. | Markdown | Logical |
linkDescriptions | Markdown | Logical (Strict) |
linkFragments | Markdown | Logical |
literalConstructorWrappers | TypeScript | Stylistic |
loopAwaitsReports using await expressions inside loops. | Performance | Logical |
loopFunctionsReports function declarations and expressions inside loops that reference variables modified by the loop. | Performance | Logical |
mainValidity | PackageJSON | Logical |
manValidity | PackageJSON | Logical |
maps | Sorting | Stylistic |
mathMethods | TypeScript | Stylistic (Strict) |
meaninglessVoidOperators | TypeScript | Logical |
mediaCaptionsReports media elements without captions. | JSX | Logical |
mediaSyntaxReversalsReports reversed link and image syntax in Markdown. | Markdown | Stylistic |
messagePhrases | Flint | Logical (Strict) |
misleadingVoidExpressions | TypeScript | Logical |
missingPlaceholders | Flint | Logical |
misusedPromises | TypeScript | Logical |
modules | Sorting | Stylistic |
moduleSpecifierLists | TypeScript | Logical |
mouseEventKeyEventsReports mouse events without corresponding keyboard events. | JSX | Logical |
multilineAmbiguities | TypeScript | Stylistic |
namedDefaultExports | TypeScript | Stylistic (Strict) |
namePresence | PackageJSON | Logical |
namespaceDeclarationsReports using legacy namespace declarations. | TypeScript | Logical |
namespaceImplicitAmbientImports | TypeScript | Stylistic (Strict) |
namespaceKeywords | TypeScript | Stylistic |
nameValidity | PackageJSON | Logical |
nativeObjectExtensions | TypeScript | Untyped |
negativeIndexLengthMethods | TypeScript | Stylistic (Strict) |
negativeZeroComparisonsReports comparisons with -0 that may not behave as expected. | TypeScript | Logical |
nestedStandaloneIfs | TypeScript | Stylistic |
newDefinitions | TypeScript | Logical |
newExpressionsReports standalone new expressions that don't use the constructed object. | TypeScript | Logical |
newNativeNonConstructorsDisallows using new with global non-constructor functions like Symbol and BigInt. | TypeScript | Untyped |
nodeAppendMethodsPrefer modern DOM append/prepend methods over appendChild/insertBefore. | Browser | Logical (Strict) |
nodeDatasetAttributesPrefer using element.dataset over getAttribute/setAttribute for data-* attributes. | Browser | Logical (Strict) |
nodeModificationMethodsPrefer modern DOM APIs like .replaceWith() and .before() over legacy methods like .replaceChild() and .insertBefore(). | Browser | Logical (Strict) |
nodePropertyInChecks | Flint | Logical |
nodeProtocols | Node | Logical |
nodeQueryMethodsPrefer modern querySelector and querySelectorAll over legacy DOM query methods. | Browser | Stylistic (Strict) |
nodeRemoveMethodsPrefer the modern node.remove() method over the legacy parentNode.removeChild(node) API. | Browser | Logical (Strict) |
nodeTextContentsPrefer textContent over innerText for DOM nodes. | Browser | Logical (Strict) |
nonInteractiveElementInteractionsReports non-interactive elements with interactive event handlers. | JSX | Logical |
nonInteractiveElementRolesReports non-interactive elements with interactive ARIA roles. | JSX | Logical |
nonInteractiveElementTabIndexesReports non-interactive elements with positive or zero tabIndex values. | JSX | Logical |
nonNullableTypeAssertions | TypeScript | Stylistic |
nonNullAssertedNullishCoalesces | TypeScript | Logical (Strict) |
nonNullAssertedOptionalChains | TypeScript | Logical |
nonNullAssertionPlacement | TypeScript | Stylistic (Strict) |
nonNullAssertions | TypeScript | Logical (Strict) |
nonOctalDecimalEscapesReports non-octal decimal escape sequences (\8 and \9) in string literals. | TypeScript | Logical |
nullishCoalescingOperators | TypeScript | Stylistic |
numberMethodRanges | TypeScript | Logical |
numberStaticMethods | TypeScript | Stylistic (Strict) |
numericErasingOperations | TypeScript | Logical |
numericLiteralCasing | TypeScript | Stylistic (Strict) |
numericLiteralParsingReports parseInt calls with binary, hexadecimal, or octal strings that can be replaced with numeric literals. | TypeScript | Stylistic |
numericPrecision | TypeScript | Logical |
numericSeparatorGroups | TypeScript | Stylistic (Strict) |
numericTrailingZeros | YAML | Stylistic (Strict) |
objectAssignSpreads | TypeScript | Stylistic |
objectCalls | TypeScript | Logical |
objectEntriesMethods | TypeScript | Stylistic (Strict) |
objectHasOwns | TypeScript | Stylistic |
objectKeyDuplicates | TypeScript | Logical |
objectProtoReports using the deprecated proto property to access or modify an object's prototype. | TypeScript | Untyped |
objectPrototypeBuiltIns | TypeScript | Logical |
objects | Sorting | Stylistic |
objectShorthand | TypeScript | Stylistic |
objectSpreadUnnecessaryFallbacks | TypeScript | Logical |
objectTypeDefinitions | TypeScript | Stylistic |
objectTypes | Sorting | Stylistic |
octalEscapesReports using octal escape sequences in string literals. | TypeScript | Untyped |
octalNumbersReports using legacy octal numeric literals. | TypeScript | Untyped |
olPrefixes | Markdown | Stylistic (Strict) |
operatorAssignmentShorthand | TypeScript | Stylistic |
optionalChainOperators | TypeScript | Stylistic |
optionalDependenciesPresence | PackageJSON | None |
optionalDependenciesValidity | PackageJSON | Logical |
osValidity | PackageJSON | Logical |
overloadSignaturesAdjacent | TypeScript | Stylistic |
packageCollections | Sorting | Stylistic |
parameterPropertyAssignment | TypeScript | Logical |
parameterReassignments | TypeScript | Stylistic (Strict) |
parseIntRadixes | TypeScript | Logical |
peerDependenciesPresence | PackageJSON | None |
peerDependenciesValidity | PackageJSON | Logical |
plainScalars | YAML | Stylistic (Strict) |
plusOperands | TypeScript | Logical |
privateValidity | PackageJSON | Logical |
processExists | Node | Logical |
promiseExecutorReturns | TypeScript | Logical |
promiseFinallyReturns | TypeScript | Logical |
promiseFunctionAsync | TypeScript | Stylistic |
promiseMethodSingleArrayArguments | TypeScript | Logical |
promiseRejectErrors | TypeScript | Logical |
propDuplicatesDisallow duplicate props in JSX elements. | JSX | Logical |
propertyAccessNotation | TypeScript | Stylistic |
propertyOrdering | PackageJSON | Logical |
publishConfigValidity | PackageJSON | Logical |
recursionOnlyArguments | TypeScript | Logical |
reduceTypeParameters | TypeScript | Logical (Strict) |
redundantTypeConstituents | TypeScript | Logical |
referenceLikeUrls | Markdown | Logical |
regexAllGlobalFlags | TypeScript | Logical |
regexAmbiguousInvalidity | TypeScript | Logical |
regexCharacterClasses | TypeScript | Stylistic (Strict) |
regexCharacterClassRanges | TypeScript | Stylistic |
regexCharacterClassSetOperations | TypeScript | Stylistic |
regexConciseCharacterClassNegations | TypeScript | Stylistic |
regexContradictoryAssertions | TypeScript | Logical |
regexControlCharacterEscapes | TypeScript | Logical |
regexControlCharacters | TypeScript | Logical |
regexDigitMatchers | TypeScript | Stylistic (Strict) |
regexDollarEscapes | TypeScript | Stylistic |
regexDuplicateCharacterClassCharacters | TypeScript | Logical |
regexDuplicateDisjunctions | TypeScript | Logical |
regexEmptyAlternatives | TypeScript | Logical |
regexEmptyCapturingGroups | TypeScript | Logical |
regexEmptyCharacterClasses | TypeScript | Logical |
regexEmptyGroups | TypeScript | Logical |
regexEmptyLazyQuantifiers | TypeScript | Logical |
regexEmptyLookaroundsAssertions | TypeScript | Logical |
regexEmptyStringLiterals | TypeScript | Logical |
regexEscapeBackspaces | TypeScript | Logical |
regexExecutors | TypeScript | Stylistic (Strict) |
regexFlags | Sorting | Stylistic |
regexGraphemeStringLiterals | TypeScript | Logical (Strict) |
regexHexadecimalEscapes | TypeScript | Stylistic (Strict) |
regexIgnoreCaseFlags | TypeScript | Logical |
regexInvisibleCharacters | TypeScript | Logical |
regexLegacyFeatures | TypeScript | Logical |
regexLetterCasing | TypeScript | Stylistic (Strict) |
regexLists | Sorting | Stylistic |
regexLiterals | TypeScript | Logical |
regexLookaroundAssertions | TypeScript | Stylistic (Strict) |
regexLookaroundQuantifierOptimizations | TypeScript | Logical |
regexMatchNotation | TypeScript | Stylistic (Strict) |
regexMisleadingCapturingGroups | TypeScript | Logical |
regexMisleadingQuantifiers | TypeScript | Logical |
regexMisleadingUnicodeCharacters | TypeScript | Logical |
regexNamedBackreferences | TypeScript | Stylistic (Strict) |
regexNamedCaptureGroups | TypeScript | Logical |
regexNamedReplacements | TypeScript | Stylistic (Strict) |
regexNonStandardFlags | TypeScript | Logical |
regexObscureRanges | TypeScript | Logical |
regexOctalEscapes | TypeScript | Logical |
regexPlusQuantifiers | TypeScript | Stylistic (Strict) |
regexPredefinedAssertions | TypeScript | Stylistic |
regexQuantifierOptimizations | TypeScript | Logical |
regexQuestionQuantifiers | TypeScript | Stylistic (Strict) |
regexRepeatQuantifiers | TypeScript | Stylistic |
regexResultArrayGroups | TypeScript | Stylistic (Strict) |
regexSetOperationOptimizations | TypeScript | Logical |
regexStandaloneBackslashes | TypeScript | Logical |
regexStarQuantifiers | TypeScript | Stylistic (Strict) |
regexSuperLinearBacktracking | TypeScript | Logical |
regexSuperLinearMoves | TypeScript | Logical |
regexTestMethods | TypeScript | Stylistic |
regexUnicodeCodepointEscapes | TypeScript | Stylistic (Strict) |
regexUnicodeEscapes | TypeScript | Stylistic |
regexUnicodeFlag | TypeScript | None |
regexUnicodeProperties | TypeScript | Stylistic |
regexUnnecessaryAssertions | TypeScript | Logical |
regexUnnecessaryBackreferences | TypeScript | Logical |
regexUnnecessaryCharacterClasses | TypeScript | Logical |
regexUnnecessaryCharacterRanges | TypeScript | Logical |
regexUnnecessaryDisjunctions | TypeScript | Logical |
regexUnnecessaryDollarReplacements | TypeScript | Logical |
regexUnnecessaryEscapes | TypeScript | Stylistic |
regexUnnecessaryLookaroundAssertions | TypeScript | Logical |
regexUnnecessaryNestedAssertions | TypeScript | Logical |
regexUnnecessaryNestedQuantifiers | TypeScript | Logical |
regexUnnecessaryNonCapturingGroups | TypeScript | Stylistic (Strict) |
regexUnnecessaryNumericQuantifiers | TypeScript | Logical |
regexUnnecessaryOptionalAssertions | TypeScript | Logical |
regexUnnecessaryReferentialBackreferences | TypeScript | Logical |
regexUnnecessarySetOperands | TypeScript | Logical |
regexUnusedCapturingGroups | TypeScript | Logical |
regexUnusedFlags | TypeScript | Logical |
regexUnusedLazyQuantifiers | TypeScript | Logical |
regexUnusedQuantifiers | TypeScript | Logical |
regexValidity | TypeScript | Logical |
regexWordMatchers | TypeScript | Stylistic (Strict) |
regexZeroQuantifiers | TypeScript | Logical |
removeEventListenerExpressionsDisallow inline function expressions in removeEventListener calls. | Browser | Logical |
repositoryDirectoryValidity | PackageJSON | Logical |
repositoryShorthand | PackageJSON | Logical |
repositoryValidity | PackageJSON | Logical |
requireImports | TypeScript | Logical |
responseMethods | TypeScript | Stylistic |
restrictedGlobals | TypeScript | None |
restrictedIdentifiers | TypeScript | None |
restrictedImports | TypeScript | None |
restrictedProperties | TypeScript | None |
restrictedSyntax | TypeScript | None |
restrictedTypes | TypeScript | None |
returnAssignmentsReports using assignment expressions in return statements. | TypeScript | Stylistic |
returnAwaitPromises | TypeScript | Logical |
returnThisTypes | TypeScript | Logical (Strict) |
roleRedundanciesReports redundant ARIA roles on elements with implicit roles. | JSX | Logical |
roleRequiredAriaPropsReports ARIA roles missing their required ARIA properties. | JSX | Logical |
roleSupportedAriaPropsReports ARIA properties that are not supported by an element's role. | JSX | Logical |
roleTagsReports ARIA roles that have semantic HTML element equivalents. | JSX | Logical (Strict) |
ruleDescriptions | Flint | Logical |
rulePresets | Flint | Logical |
ruleURLs | Flint | Logical |
scopePropsReports scope props on non-th elements. | JSX | Logical |
scriptsValidity | PackageJSON | Logical |
scriptUrlsReports javascript: URLs that can act as a form of eval. | Browser | Logical |
selfAssignmentsReports self-assignments which have no effect and are likely errors. | TypeScript | Logical |
selfComparisonsReports comparing a value to itself. | TypeScript | Logical (Strict) |
sequencesReports using the comma operator in expressions. | TypeScript | Untyped |
setHasExistenceChecks | TypeScript | Stylistic (Strict) |
sets | Sorting | Stylistic |
setSizeLengthChecks | TypeScript | Stylistic (Strict) |
setterReturns | TypeScript | Untyped |
shadowedRestrictedNamesReports variable declarations that shadow JavaScript's restricted names. | TypeScript | Untyped |
shadows | TypeScript | Stylistic |
singleVariableDeclarations | TypeScript | Logical |
sizeComparisonOperators | TypeScript | Stylistic (Strict) |
sparseArraysReports array literals with holes (sparse arrays). | TypeScript | Logical |
spellingRuns the CSpell spell checker on any source code file. | CSpell | Logical |
spreadAccumulatorsReports spread operations that accumulate values in loops, causing quadratic time complexity. | Performance | Logical |
staticElementInteractionsReports static elements with event handlers that lack ARIA roles. | JSX | Logical |
staticMemberOnlyClasses | TypeScript | Stylistic (Strict) |
stringCaseMismatches | TypeScript | Logical |
stringCodePoints | TypeScript | Logical (Strict) |
stringMappingKeys | YAML | Logical (Strict) |
stringSliceMethods | TypeScript | Stylistic (Strict) |
stringStartsEndsWith | TypeScript | Stylistic |
stringTrimMethods | TypeScript | Stylistic (Strict) |
structuredCloneMethods | TypeScript | Stylistic (Strict) |
svgTitlesReports <svg> elements without a <title> child element. | JSX | Logical |
switchCases | Sorting | Stylistic |
symbolDescriptionsReports Symbol() calls without description arguments. | TypeScript | Stylistic |
tabIndexPositiveValuesReports positive tabIndex values. | JSX | Logical |
tableColumnCounts | Markdown | Logical |
templateExpressionValues | TypeScript | Logical |
testCaseDuplicatesReports test cases that are identical to previous test cases. | Flint | Logical |
testCaseOnlies | Flint | Logical |
testShorthands | Flint | Stylistic |
thisBeforeSuper | TypeScript | Untyped |
throwErrors | TypeScript | Logical |
topLevelAwaits | TypeScript | Stylistic (Strict) |
tripleSlashReferences | TypeScript | Logical |
tripleSlashReferenceValidity | TypeScript | Logical |
tsComments | TypeScript | Logical |
tslintComments | TypeScript | Stylistic |
typeAssertions | TypeScript | Stylistic |
typeConstituentDuplicates | TypeScript | Logical |
typeExports | TypeScript | Stylistic |
typeImports | TypeScript | Stylistic |
typeofComparisonsReports typeof expressions that compare impossible string literals. | TypeScript | Untyped |
typePresence | PackageJSON | Logical |
typeRequired | PackageJSON | Logical |
typesPresence | PackageJSON | None |
typeValidity | PackageJSON | Logical |
unassignedVariablesReports variables that are declared but never assigned a value. | TypeScript | Untyped |
unboundMethods | TypeScript | Logical |
undefinedInitialValues | TypeScript | Stylistic |
undefinedTypeofChecks | TypeScript | Stylistic (Strict) |
undefinedVariablesReports using variables that are not defined. | TypeScript | Untyped |
unescapedEntitiesDisallow unescaped HTML entities in JSX text that may cause rendering issues. | JSX | Stylistic |
unicodeBOMsReports files with Unicode Byte Order Marks (BOMs). | TypeScript | Stylistic |
unifiedSignatures | TypeScript | Logical (Strict) |
unionTypes | Sorting | Stylistic |
unnecessaryBind | TypeScript | Logical |
unnecessaryBlocksReports standalone block statements that don't create a meaningful scope. | TypeScript | Stylistic |
unnecessaryBooleanCasts | TypeScript | Stylistic |
unnecessaryCatchesReports catch clauses that only rethrow the caught error without modification. | TypeScript | Logical |
unnecessaryComparisons | TypeScript | Logical |
unnecessaryComputedKeys | TypeScript | Stylistic |
unnecessaryConcatenationReports string concatenation using the + operator when both operands are string literals. | TypeScript | Stylistic |
unnecessaryConditions | TypeScript | Logical |
unnecessaryConstructors | TypeScript | Stylistic |
unnecessaryContinues | TypeScript | Logical |
unnecessaryEscapes | TypeScript | Stylistic |
unnecessaryFragmentsDisallow unnecessary JSX fragments that wrap a single child or have no children. | JSX | Stylistic |
unnecessaryFunctionCurries | TypeScript | Logical |
unnecessaryLogicalComparisons | TypeScript | Logical |
unnecessaryMathClamps | TypeScript | Logical |
unnecessaryNumericFractions | TypeScript | Logical |
unnecessaryRenames | TypeScript | Stylistic |
unnecessaryReturns | TypeScript | Stylistic |
unnecessarySpreads | TypeScript | Logical |
unnecessaryTemplateExpressions | TypeScript | Logical |
unnecessaryTernaries | TypeScript | Stylistic (Strict) |
unnecessaryTypeAnnotations | TypeScript | Stylistic |
unnecessaryTypeArguments | TypeScript | Logical |
unnecessaryTypeAssertions | TypeScript | Logical |
unnecessaryTypeConstraints | TypeScript | Logical |
unnecessaryTypeConversions | TypeScript | Logical |
unnecessaryTypeParameters | TypeScript | Logical |
unnecessaryUndefinedDefaults | TypeScript | Logical |
unnecessaryUseStricts | TypeScript | Logical |
unpublishedBins | Node | Logical |
unpublishedImports | Node | Logical |
unreachableStatements | TypeScript | Untyped |
unsafeDeclarationmerging | TypeScript | Logical |
unsafeEnumComparisons | TypeScript | Logical |
unsafeFinallyStatements | TypeScript | Logical |
unsafeFunctionTypes | TypeScript | Logical |
unsafeNegationsReports negating the left operand of in or instanceof relations. | TypeScript | Untyped |
unsafeOptionalChains | TypeScript | Untyped |
unsafeToString | TypeScript | Logical |
unsafeUnaryNegations | TypeScript | Logical |
unsupportedGlobals | Node | Logical |
unsupportedNodeAPIs | Node | Logical |
unsupportedSyntax | Node | Logical |
unusedExpressions | TypeScript | Logical |
unusedLabels | TypeScript | Stylistic |
unusedMessageIds | Flint | Logical |
unusedPlaceholders | Flint | Logical |
unusedPrivateClassMembers | TypeScript | Logical |
unusedSwitchStatements | TypeScript | Logical |
unusedValues | TypeScript | Logical |
unusedVariables | TypeScript | Logical |
usageBeforeDefinition | TypeScript | Untyped |
useStrictDirectives | TypeScript | Untyped |
valueSafetyReports JSON values that are unsafe for data interchange. | JSON | Logical |
varDeclarations | TypeScript | Stylistic |
variableBlockScopeUsage | TypeScript | Untyped |
variableDeclarations | Sorting | Stylistic |
variableDeletionsReports attempting to delete variables with the delete operator. | TypeScript | Untyped |
variableRedeclarations | TypeScript | Untyped |
versionPresence | PackageJSON | Logical |
versionValidity | PackageJSON | Logical |
voidOperatorReports using the void operator. | TypeScript | Stylistic |
windowMessagingTargetOriginRequires specifying the targetOrigin argument when calling window.postMessage(). | Browser | Logical |
withStatements | TypeScript | Logical |
workspacesValidity | PackageJSON | Logical |
wrapperObjectTypes | TypeScript | Logical |
yamlKeys | Sorting | Stylistic |
yamlSequenceValues | Sorting | Stylistic |
Not Implementing
Section titled “Not Implementing”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: 322
| Flint Rule | Plugin | Notes |
|---|---|---|
abbreviations | TypeScript | |
aboutSchemaDescriptions | Flint | |
aboutSchemas | Flint | |
aboutSuggestions | Flint | |
aboutTypes | Flint | |
accessorPairs | TypeScript | |
argumentsArrayMethods | TypeScript | |
argumentsProperties | TypeScript | |
arrayDestructuringSparsity | TypeScript | |
arrayElementsSorting | JSON | |
arrayFlatDepthMagicNumbers | TypeScript | |
arrayJoinSeparators | TypeScript | |
arrayMethodThisArguments | TypeScript | |
arrayReducers | TypeScript | |
arraySortCompareArgument | TypeScript | |
arrowBodyBraces | TypeScript | |
arrowCallbacks | TypeScript | |
asciiCharacters | Deno | |
assignmentOperationRefactors | TypeScript | |
asyncAwaitStatements | TypeScript | |
atomicUpdates | TypeScript | |
awaitMemberAccesses | TypeScript | |
barrelFiles | TypeScript | |
bigintLiterals | JSON | Generally handled by parsers. |
binaryExpressions | JSON | Generally handled by parsers. |
binaryNumericLiterals | JSON | Generally handled by parsers. |
bitwiseOperatorLogic | TypeScript | |
bitwiseOperators | TypeScript | |
blankLineMultiples | Markdown | Formatting rule |
blockquoteSpaces | Markdown | Formatting rule |
blockStatements | TypeScript | Superseded by prettier-plugin-curly |
booleanLiteralParameterComments | TypeScript | |
builtinPrototypeMethodAccesses | TypeScript | |
callbackErrorHandling | Node | |
callbackErrorLiterals | Node | |
callbackReturns | Node | |
capitalizedConstructors | TypeScript | |
codeblockBlankLines | Markdown | Formatting rule |
codeBlockStyles | Markdown | Formatting rule |
codeFenceStyles | Markdown | Formatting rule |
commandOutputs | Markdown | Overly opinionated |
commentCapitalization | TypeScript | |
comments | JSON | Generally handled by parsers. |
commentWarnings | TypeScript | |
comparisonSequences | TypeScript | Handled by TypeScript / otherwise is stylistic |
conditionalAssignments | TypeScript | Superseded by unnecessaryConditions |
conditionNegations | TypeScript | |
conditionOrdering | TypeScript | |
consistentReturns | TypeScript | |
constantBinaryExpressions | TypeScript | Superseded by unnecessaryConditions |
constantConditions | TypeScript | Superseded by unnecessaryConditions |
constEnums | TypeScript | |
continues | TypeScript | |
defaultCases | TypeScript | |
defaultImportRenames | TypeScript | |
defaultParameterReassignments | TypeScript | |
deprecatedAPIs | Node | Superseded by deprecated |
deprecatedContextMethods | Flint | |
deprecatedMessagePlaceholders | Flint | |
deprecatedMessageStrings | Flint | |
deprecatedReplacedBy | Flint | |
deprecatedReportAPIs | Flint | |
deprecatedRuleFunctions | Flint | |
deprecatedSchemaDefaults | Flint | |
deprecatedTextReplacements | Flint | |
destructuring | TypeScript | |
directiveDisableSelectors | TypeScript | Core requires explicit disables |
directiveDuplicateDisables | TypeScript | Core detects duplicate disables |
directiveMisleadingEnables | TypeScript | Core requires explicit enables |
directiveRestrictedDisables | TypeScript | |
directiveSelectors | TypeScript | Handled by Flint core |
directiveUnknownRules | TypeScript | Handled by Flint core |
directiveUnlimitedDisables | TypeScript | Core requires explicit disables |
directiveUnused | TypeScript | Handled by Flint core |
directiveUnusedDisables | TypeScript | Core detects unused disables |
directiveUnusedEnables | TypeScript | Core detects unused enables |
duplicateSpreads | JSX | |
emphasisMarkerSpacing | Markdown | |
emphasisSpaces | Markdown | Formatting rule |
emphasisStyles | Markdown | Formatting rule |
endingTernaryIfElses | TypeScript | |
enumInitializers | TypeScript | |
equalityOperatorNegations | TypeScript | |
evolvingVariableTypes | TypeScript | |
exportDefault | TypeScript | |
exportGroups | TypeScript | |
exportLast | TypeScript | |
exportsStyle | Node | CJS-specific |
exportUniqueNames | TypeScript | |
externalHttpImports | TypeScript | |
extraneousImports | Node | Superseded by Knip |
extraneousRequires | Node | Superseded by Knip |
filenameCasing | TypeScript | |
fileTrailingNewlines | Markdown | Formatting rule |
fixerReturns | Flint | |
floatingDecimals | JSON | Generally handled by parsers. |
forInGuards | TypeScript | |
functionDeclarationStyles | TypeScript | |
functionNameMatches | TypeScript | |
functionNames | TypeScript | |
functionReturnTypes | TypeScript | |
globalBuffer | Node | |
globalConsole | Node | |
globalProcess | Node | |
globalTextDecoder | Node | |
globalTextEncoder | Node | |
globalURL | Node | |
globalURLSearchParams | Node | |
hardTabs | Markdown | Formatting rule |
headingBlankLines | Markdown | Formatting rule |
headingClosingSpaceMultiples | Markdown | Formatting rule |
headingClosingSpaceMultiples | Markdown | Formatting rule |
headingClosingSpaces | Markdown | Formatting rule |
headingIndents | Markdown | Formatting rule |
headingMissingSpaces | Markdown | Formatting rule |
headingPresence | Markdown | Overly opinionated |
headingSpaces | Markdown | I intend to write a Prettier plugin. |
headingStyles | Markdown | Formatting rule |
hexadecimalNumericLiterals | JSON | Generally handled by parsers. |
hexEscapes | TypeScript | |
hrStyles | Markdown | Formatting rule |
html | Markdown | |
identifierEscapeSequences | JSON | Generally handled by parsers. |
identifierMatches | TypeScript | |
identifierNumbers | JSON | Generally handled by parsers. |
iifeReadability | TypeScript | |
imageAltRedundancy | JSX | |
implicitCoercions | TypeScript | |
importAbsolutePaths | TypeScript | |
importAssertions | TypeScript | Generally handled by parsers. |
importDefaults | TypeScript | Handled by TypeScript |
importDuplicates | TypeScript | |
importFirst | TypeScript | |
importMaximumDependencies | TypeScript | |
importNameMatches | TypeScript | |
importNamespaceProperties | TypeScript | Handled by TypeScript |
importNamespaces | TypeScript | |
importsSorting | TypeScript | |
infinity | JSON | Generally handled by parsers. |
inlineComments | TypeScript | |
innerDeclarations | TypeScript | |
iterableKeys | JSX | |
iteratorMethodFunctionReferences | TypeScript | |
jsdocAlignment | TypeScript | I intend to write a Prettier plugin. |
jsdocBlankBlockDescriptions | TypeScript | |
jsdocConvertToJSDocComments | TypeScript | |
jsdocDefaults | TypeScript | |
jsdocDefinedTypes | TypeScript | |
jsdocDescriptionCompleteSentences | TypeScript | |
jsdocDescriptions | TypeScript | |
jsdocExamples | TypeScript | |
jsdocFileOverviews | TypeScript | |
jsdocImportsAsDependencies | TypeScript | |
jsdocIndentation | TypeScript | I intend to write a Prettier plugin. |
jsdocLineAlignment | TypeScript | I intend to write a Prettier plugin. |
jsdocMatchDescriptions | TypeScript | |
jsdocMatchNames | TypeScript | |
jsdocMissingSyntax | TypeScript | |
jsdocParameterDescriptions | TypeScript | |
jsdocParameters | TypeScript | |
jsdocParameterTypes | TypeScript | |
jsdocProperties | TypeScript | |
jsdocPropertyDescriptions | TypeScript | |
jsdocPropertyTypes | TypeScript | |
jsdocRequired | TypeScript | |
jsdocReturnDescriptions | TypeScript | |
jsdocReturns | TypeScript | |
jsdocReturnTypes | TypeScript | |
jsdocTagLines | TypeScript | |
jsdocTemplates | TypeScript | |
jsdocTextEscaping | TypeScript | |
jsdocThrows | TypeScript | |
jsonImportAttributes | TypeScript | |
keyCasing | JSON | |
keyContents | JSON | |
labels | TypeScript | |
labelVariableNames | TypeScript | |
liIndents | Markdown | Formatting rule |
lineLengths | Markdown | Formatting rule |
linkBlankLines | Markdown | Formatting rule |
linkImageStyles | Markdown | Formatting rule |
linkSpaces | Markdown | |
listMarkerSpaces | Markdown | Formatting rule |
listStyles | Markdown | Formatting rule |
loopConditionConstants | TypeScript | |
magicNumbers | TypeScript | |
mappedObjectSpreads | Performance | |
mappingKeyCasing | YAML | |
mathRangeTernaries | TypeScript | |
mathTruncationOperators | TypeScript | |
maximumClassesPerFile | TypeScript | |
maximumComplexity | TypeScript | |
maximumDepth | TypeScript | |
maximumIdentifierLengths | TypeScript | |
maximumLinesPerFile | TypeScript | |
maximumLinesPerFunction | TypeScript | |
maximumNestedCallbacks | TypeScript | |
maximumParameters | TypeScript | |
maximumStatements | TypeScript | |
memberAccessibility | TypeScript | |
messageIdMismatches | Flint | |
misleadingSemicolons | JSX | |
misleadingShorthandAssignments | TypeScript | |
misleadingThenProperties | TypeScript | |
missingImports | Node | |
missingRequires | Node | |
mixedRequires | Node | Superseded by ESM and ordering rules |
moduleBoundaryTypes | TypeScript | |
moduleFormats | TypeScript | |
moduleImportStyles | TypeScript | |
multilineStrings | TypeScript | |
multipleElseIfSwitches | TypeScript | |
namingConventions | TypeScript | |
nan | JSON | Generally handled by parsers. |
newRequires | Node | |
nodeGlobals | Deno | |
nullComparisons | TypeScript | |
nulls | TypeScript | |
numberKeyLiterals | TypeScript | |
numbers | JSON | Generally handled by parsers. |
numberToFixedDigits | TypeScript | |
numericConstantApproximations | TypeScript | |
numericSeparators | JSON | Generally handled by parsers. |
objectDefaultParameters | TypeScript | |
objectLiteralComparisons | TypeScript | |
octalEscapeSequences | JSON | Generally handled by parsers. |
octalLiterals | JSON | Generally handled by parsers. |
octalNumericLiterals | JSON | Generally handled by parsers. |
optionalChainExpressions | TypeScript | |
optionDefaults | Flint | |
parameterProperties | TypeScript | |
parentheses | JSON | Generally handled by parsers. |
pathConcatenations | Node | |
plusOperators | JSON | Generally handled by parsers. |
plusPlusOperators | TypeScript | |
prefixedClassLikes | TypeScript | |
processEnvs | Node | |
processExitThrows | Node | |
promiseAlwaysReturn | TypeScript | Superseded by no-floating-promises |
promiseArgumentCounts | TypeScript | |
promiseAwaitableCallbacks | TypeScript | |
promiseAwaitableThens | TypeScript | |
promiseCallbackFunctions | Node | |
promiseCatchableThens | TypeScript | |
promiseCatchOrReturn | TypeScript | Superseded by no-floating-promises |
promiseErrorFirstCallbacks | TypeScript | Superseded by no-floating-promises |
promiseNesting | TypeScript | |
promiseNews | TypeScript | |
promiseNewStatics | TypeScript | |
promiseNonSpecMethods | TypeScript | Superseded by no-floating-promises |
promiseParameterNames | TypeScript | |
promisesDNS | Node | |
promisesFS | Node | |
properNames | Markdown | Superseded by cspell |
propertyOrdering | Flint | |
prototypeIterators | TypeScript | |
readonlyClassProperties | TypeScript | |
reflectApplies | TypeScript | |
regexConciseness | TypeScript | Superseded by other regex cleanliness rules |
regexConsecutiveSpaces | TypeScript | |
regexDivisionStarts | TypeScript | |
regexTopLevelDeclarations | TypeScript | |
regexUnicodeSetsFlag | TypeScript | |
restrictedDirectives | TypeScript | |
restrictedExports | TypeScript | |
restrictedJSDocs | TypeScript | |
restrictedRequires | Node | |
restSpreadProperties | TypeScript | |
ruleAboutChangers | Flint | |
shoutyConstants | TypeScript | |
slowTypes | TypeScript | |
strictMode | TypeScript | |
stringConcatenationTemplates | TypeScript | |
stringContents | TypeScript | |
stringRawEscapes | TypeScript | |
stringReplaceAllRegexSearches | TypeScript | |
stringStartsEndsWithMethods | TypeScript | |
stringTemplateCurlies | TypeScript | |
strongStyles | Markdown | Formatting rule |
switchCaseBraces | TypeScript | |
switchExhaustiveness | TypeScript | |
syncFunctionAwaits | TypeScript | Generally handled by parsers. |
syncFunctionInAsyncFunctions | Deno | |
synchronousMethods | Node | |
tableBlankLines | Markdown | Formatting rule |
tableColumnStyles | Markdown | Formatting rule |
tablePipeStyles | Markdown | Formatting rule |
templateIndents | TypeScript | |
templateLiterals | JSON | Generally handled by parsers. |
ternaryNesting | TypeScript | |
ternaryOperators | TypeScript | |
testNames | Flint | |
testOutputNulls | Flint | |
testOutputs | Flint | |
testPropertyOrders | Flint | |
textEncodingCases | TypeScript | |
thisAliases | TypeScript | |
thisInStatic | TypeScript | |
todoExpirations | TypeScript | |
topLevelInteroperability | JSON | |
topLevelRequires | Node | CJS-specific |
trailingSpaces | Markdown | Formatting rule |
typeChecksTypeErrors | TypeScript | |
ulIndents | Markdown | Formatting rule |
unassignedImports | TypeScript | |
undefined | JSON | Generally handled by parsers. |
undefinedNames | TypeScript | |
underscoreNames | TypeScript | |
unicodeCodepointEscapes | JSON | Generally handled by parsers. |
unnecessaryLabels | TypeScript | |
unnecessaryPolyfills | TypeScript | Superseded by the e18e initiative |
unnecessaryStringRaws | TypeScript | |
unnecessaryTokenRanges | Flint | |
unpublishedRequires | Node | |
unreachableLoops | TypeScript | |
unusedCatchBindings | TypeScript | Superseded by unusedVariables |
unusedObjectProperties | TypeScript | |
urlRelativity | TypeScript | |
variableDeclarationInitializations | TypeScript | |
variableDeclarationSorting | TypeScript | |
variablesOnTop | TypeScript | |
verbatimModuleSyntax | TypeScript |