Skip to content

About

Flint’s TypeScript plugin supports linting JavaScript and TypeScript source code. It comes provided with the flint npm package.

Flint’s TypeScript plugin provides the following presets:

PresetRecommendedDescription
logical✅ AlwaysCommon rules for finding bugs and enforcing good logical practices.
logicalStrict☑️ When ReadyAdditional rules for finding bugs and enforcing good logical practices.
stylistic✅ AlwaysCommon rules for consistent styling and best stylistic practices.
stylisticStrict☑️ When ReadyAdditional rules for consistent styling and best stylistic practices.
untypedExtra rules for files that aren’t type-checked by TypeScript.

If you are just getting started with linting, Flint recommends using the logical and stylistic presets:

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: [ts.presets.logical, ts.presets.stylistic],
},
],
});

If you are experienced with both JavaScript/TypeScript and linting, Flint recommends using the logicalStrict and stylisticStrict presets:

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: [ts.presets.logicalStrict, ts.presets.stylisticStrict],
},
],
});

Rules that find bugs and enforce good logical practices for most-to-all JavaScript and TypeScript files.

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: ts.presets.logical,
},
],
});

Additional logical rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both JavaScript/TypeScript and using a linter.

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: ts.presets.logicalStrict,
},
],
});

This preset’s rules are a superset of those in logical.

Rules that enforce consistent styling and best stylistic practices for most-to-all JavaScript and TypeScript files.

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: ts.presets.stylistic,
},
],
});

Additional stylistic rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both JavaScript/TypeScript and using a linter.

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: ts.presets.stylisticStrict,
},
],
});

This preset’s rules are a superset of those in stylistic.

Rules that fill in rudimentary safety practices that would normally be caught by TypeScript.

flint.config.ts
import { defineConfig, ts } from "flint";
export default defineConfig({
use: [
{
files: ts.files.all,
rules: ts.presets.untyped,
},
],
});

The untyped preset is broadly applicable for JavaScript files that aren’t type-checked by TypeScript. For long-lived projects, Flint recommends using this only as a stopgap measure pending converting files fully to TypeScript.

Implemented: 44 of 393 (11.1%)
Flint NamePresetBiome Rule(s)Deno Lint Rule(s)ESLint Rule(s)Oxlint Rule(s)
anyArgumentsLogical@typescript-eslint/no-unsafe-argumenttypescript/no-unsafe-argument
anyAssignmentsLogical@typescript-eslint/no-unsafe-assignmenttypescript/no-unsafe-assignment
anyCallsLogical@typescript-eslint/no-unsafe-calltypescript/no-unsafe-call
anyMemberAccessLogical@typescript-eslint/no-unsafe-member-accesstypescript/no-unsafe-member-access
anyReturnsLogical@typescript-eslint/no-unsafe-returntypescript/no-unsafe-return
argumentsLogicalnoArgumentsprefer-rest-paramseslint/prefer-rest-params
arrayConstructorsLogicaluseArrayLiteralsno-array-constructorno-array-constructor@typescript-eslint/no-array-constructorunicorn/no-new-arrayeslint/no-array-constructorunicorn/no-new-array
arrayElementDeletionsLogical@typescript-eslint/no-array-deletetypescript/no-array-delete
arrayEmptyCallbackSlotsLogicaloxc/uninvoked-array-callback
arrayMapIdentitiesLogicalnoFlatMapIdentity
arrayUnnecessaryLengthChecksLogicalunicorn/no-useless-length-checkunicorn/no-useless-length-check
asyncFunctionAwaitsLogicaluseAwaitrequire-awaitrequire-await@typescript-eslint/require-awaiteslint/require-awaittypescript/require-await
asyncPromiseExecutorsLogicalnoAsyncPromiseExecutorno-async-promise-executorno-async-promise-executoreslint/no-async-promise-executor
asyncUnnecessaryPromiseWrappersLogicalunicorn/no-useless-promise-resolve-rejectunicorn/no-useless-promise-resolve-reject
awaitThenableLogical@typescript-eslint/await-thenableunicorn/no-unnecessary-awaittypescript/await-thenableunicorn/no-unnecessary-await
caseDuplicatesLogicalnoDuplicateCaseno-duplicate-caseno-duplicate-caseeslint/no-duplicate-case
caseFallthroughsLogicalnoFallthroughSwitchClauseno-fallthroughno-fallthrougheslint/no-fallthrough
catchCallbackTypesLogical@typescript-eslint/use-unknown-in-catch-callback-variabletypescript/use-unknown-in-catch-callback-variable
charAtComparisonsLogicaloxc/bad-char-at-comparison
constVariablesLogicaluseConstprefer-constprefer-const
dateConstructorClonesLogicalunicorn/consistent-date-clone
debuggerStatementsLogicalnoDebuggerno-debuggerno-debuggereslint/no-debugger
defaultCaseLastLogicaluseDefaultSwitchClauseLastdefault-case-lasteslint/default-case-last
deprecatedLogical@typescript-eslint/no-deprecated
dynamicDeletesLogical@typescript-eslint/no-dynamic-deletetypescript/no-dynamic-delete
elseIfDuplicatesLogicalnoDuplicateElseIfno-dupe-else-ifeslint/no-dupe-else-if
emptyDestructuresLogicalnoEmptyPatternno-empty-patternno-empty-patterneslint/no-empty-pattern
emptyEnumsLogicalno-empty-enum
emptyExportsLogicalnoUselessEmptyExport@typescript-eslint/no-useless-empty-exporttypescript/no-useless-empty-export
emptyObjectTypesLogicalnoBannedTypesban-typesno-empty-interface@typescript-eslint/no-empty-object-typetypescript/ban-typestypescript/no-empty-object-typetypescript/no-empty-interface
enumMemberLiteralsLogicaluseLiteralEnumMembers@typescript-eslint/prefer-literal-enum-membertypescript/prefer-literal-enum-member
enumMixedValuesLogical@typescript-eslint/no-misused-spreadtypescript/no-misused-spread
enumValueConsistencyLogical@typescript-eslint/no-mixed-enumstypescript/no-mixed-enums
enumValueDuplicatesLogical@typescript-eslint/no-duplicate-enum-valuestypescript/no-duplicate-enum-values
equalityOperatorsLogicalnoDoubleEqualseqeqeqeqeqeqeslint/eqeqeq
errorUnnecessaryCaptureStackTracesLogicalunicorn/no-useless-error-capture-stack-trace
evalsLogicalnoGlobalEvalno-evalno-evaleslint/no-eval
exceptionAssignmentsLogicalnoCatchAssignno-ex-assignno-ex-assigneslint/no-ex-assign
explicitAnysLogicalnoExplicitAnyno-explicit-any@typescript-eslint/no-explicit-anytypescript/no-explicit-any
exportMutablesLogicalimport/no-mutable-exportsimport/no-mutable-exports
fetchMethodBodiesLogicalunicorn/no-invalid-fetch-optionsunicorn/no-invalid-fetch-options
floatingPromisesLogicalnoFloatingPromises@typescript-eslint/no-floating-promisestypescript/no-floating-promises
forInArraysLogical@typescript-eslint/no-for-in-arraytypescript/no-for-in-array
functionNewCallsLogicalno-new-funceslint/no-new-func
generatorFunctionYieldsLogicaluseYieldrequire-yieldrequire-yieldeslint/require-yield
getterSetterPairedTypesLogical@typescript-eslint/related-getter-setter-pairstypescript/related-getter-setter-pairs
impliedEvalsLogicalno-implied-eval@typescript-eslint/no-implied-evaltypescript/no-implied-eval
importEmptyBlocksLogicalimport/no-empty-named-blocksimport/no-empty-named-blocks
instanceOfArraysLogicaluseIsArrayunicorn/no-instanceof-builtinsunicorn/no-instanceof-arrayunicorn/no-instanceof-builtins
isNaNComparisonsLogicaluseIsNanuse-isnanuse-isnaneslint/use-isnan
meaninglessVoidOperatorsLogical@typescript-eslint/no-meaningless-void-operatortypescript/no-meaningless-void-operator
misleadingVoidExpressionsLogicalnoVoidTypeReturn@typescript-eslint/no-confusing-void-expressiontypescript/no-confusing-void-expression
misusedPromisesLogicalnoMisusedPromises@typescript-eslint/no-misused-promisestypescript/no-misused-promises
moduleSpecifierListsLogicalunicorn/require-module-specifiers
namespaceDeclarationsLogicalnoNamespaceno-namespace@typescript-eslint/no-namespacetypescript/no-namespace
negativeZeroComparisonsLogicalnoCompareNegZerono-compare-neg-zerono-compare-neg-zeroeslint/no-compare-neg-zero
newDefinitionsLogicalnoMisleadingInstantiatorno-misused-new@typescript-eslint/no-misused-newtypescript/no-misused-new
newExpressionsLogicalno-neweslint/no-newoxc/missing-throw
nonNullAssertedOptionalChainsLogicalnoNonNullAssertedOptionalChainno-non-null-asserted-optional-chain@typescript-eslint/no-non-null-asserted-optional-chaintypescript/no-non-null-asserted-optional-chain
nonOctalDecimalEscapesLogicalnoNonoctalDecimalEscapeno-nonoctal-decimal-escapeeslint/no-nonoctal-decimal-escape
numberMethodRangesLogicaloxc/number-arg-out-of-range
numericErasingOperationsLogicaloxc/erasing-op
numericPrecisionLogicalnoPrecisionLossno-loss-of-precision@typescript-eslint/no-loss-of-precisioneslint/no-loss-of-precision
objectCallsLogicalno-object-constructoreslint/no-object-constructor
objectKeyDuplicatesLogicalnoDuplicateObjectKeysno-dupe-keys
objectPrototypeBuiltInsLogicalnoPrototypeBuiltinsno-prototype-builtinsno-prototype-builtinseslint/no-prototype-builtins
objectSpreadUnnecessaryFallbacksLogicalunicorn/no-useless-fallback-in-spreadunicorn/no-useless-fallback-in-spread
parameterPropertyAssignmentLogical@typescript-eslint/no-unnecessary-parameter-property-assignmenttypescript/no-unnecessary-parameter-property-assignment
parseIntRadixesLogicaluseParseIntRadixradixeslint/radix
plusOperandsLogical@typescript-eslint/restrict-plus-operandstypescript/restrict-plus-operands
promiseExecutorReturnsLogicalno-promise-executor-return
promiseFinallyReturnsLogicalpromise/no-return-in-finallypromise/no-return-in-finally
promiseMethodSingleArrayArgumentsLogicalunicorn/no-single-promise-in-promise-methodsunicorn/no-single-promise-in-promise-methods
promiseRejectErrorsLogicalprefer-promise-reject-errors@typescript-eslint/prefer-promise-reject-errorseslint/prefer-promise-reject-errorstypescript/prefer-promise-reject-errors
recursionOnlyArgumentsLogicaloxc/only-used-in-recursion
redundantTypeConstituentsLogical@typescript-eslint/no-redundant-type-constituentstypescript/no-redundant-type-constituents
regexAllGlobalFlagsLogicalregexp/no-missing-g-flagoxc/bad-replace-all-arg
regexAmbiguousInvalidityLogicalregexp/strict
regexContradictoryAssertionsLogicalregexp/no-contradiction-with-assertion
regexControlCharacterEscapesLogicalregexp/control-character-escape
regexControlCharactersLogicalnoControlCharactersInRegexno-control-regexno-control-regexregexp/no-control-charactereslint/no-control-regex
regexDuplicateCharacterClassCharactersLogicalregexp/no-dupe-characters-character-class
regexDuplicateDisjunctionsLogicalregexp/no-dupe-disjunctions
regexEmptyAlternativesLogicalregexp/no-empty-alternative
regexEmptyCapturingGroupsLogicalregexp/no-empty-capturing-group
regexEmptyCharacterClassesLogicalregexp/no-empty-character-class
regexEmptyGroupsLogicalregexp/no-empty-group
regexEmptyLazyQuantifiersLogicalregexp/no-lazy-ends
regexEmptyLookaroundsAssertionsLogicalregexp/no-empty-lookarounds-assertion
regexEmptyStringLiteralsLogicalregexp/no-empty-string-literal
regexEscapeBackspacesLogicalregexp/no-escape-backspace
regexIgnoreCaseFlagsLogicalregexp/use-ignore-case
regexInvisibleCharactersLogicalregexp/no-invisible-character
regexLegacyFeaturesLogicalregexp/no-legacy-features
regexLiteralsLogicaluseRegexLiteralsprefer-regex-literals
regexLookaroundQuantifierOptimizationsLogicalregexp/optimal-lookaround-quantifier
regexMisleadingCapturingGroupsLogicalregexp/no-misleading-capturing-group
regexMisleadingQuantifiersLogicalregexp/confusing-quantifier
regexMisleadingUnicodeCharactersLogicalnoMisleadingCharacterClassno-misleading-character-classregexp/no-misleading-unicode-character
regexNamedCaptureGroupsLogicalprefer-named-capture-groupregexp/prefer-named-capture-group
regexNonStandardFlagsLogicalregexp/no-non-standard-flag
regexObscureRangesLogicalregexp/no-obscure-range
regexOctalEscapesLogicalregexp/no-octal
regexQuantifierOptimizationsLogicalregexp/optimal-quantifier-concatenation
regexSetOperationOptimizationsLogicalregexp/simplify-set-operations
regexStandaloneBackslashesLogicalregexp/no-standalone-backslash
regexSuperLinearBacktrackingLogicalregexp/no-super-linear-backtracking
regexSuperLinearMovesLogicalregexp/no-super-linear-move
regexUnnecessaryAssertionsLogicalregexp/no-useless-assertions
regexUnnecessaryBackreferencesLogicalnoUselessRegexBackrefsno-useless-backreferenceregexp/no-useless-backreferenceeslint/no-useless-backreference
regexUnnecessaryCharacterClassesLogicalregexp/no-useless-character-class
regexUnnecessaryCharacterRangesLogicalregexp/no-useless-range
regexUnnecessaryDisjunctionsLogicalregexp/no-useless-string-literal
regexUnnecessaryDollarReplacementsLogicalregexp/no-useless-dollar-replacements
regexUnnecessaryLookaroundAssertionsLogicalregexp/no-extra-lookaround-assertions
regexUnnecessaryNestedAssertionsLogicalregexp/no-trivially-nested-assertion
regexUnnecessaryNestedQuantifiersLogicalregexp/no-trivially-nested-quantifier
regexUnnecessaryNumericQuantifiersLogicalregexp/no-useless-two-nums-quantifier
regexUnnecessaryOptionalAssertionsLogicalregexp/no-optional-assertion
regexUnnecessaryReferentialBackreferencesLogicalregexp/no-potentially-useless-backreference
regexUnnecessarySetOperandsLogicalregexp/no-useless-set-operand
regexUnusedCapturingGroupsLogicalregexp/no-unused-capturing-group
regexUnusedFlagsLogicalregexp/no-useless-flag
regexUnusedLazyQuantifiersLogicalregexp/no-useless-lazy
regexUnusedQuantifiersLogicalregexp/no-useless-quantifier
regexValidityLogicalno-invalid-regexpno-invalid-regexpregexp/no-invalid-regexpeslint/no-invalid-regexp
regexZeroQuantifiersLogicalregexp/no-zero-quantifier
requireImportsLogicalnoCommonJs@typescript-eslint/no-require-importstypescript/no-require-imports
returnAwaitPromisesLogical@typescript-eslint/return-awaittypescript/return-await
selfAssignmentsLogicalnoSelfAssignno-self-assignno-self-assigneslint/no-self-assign
singleVariableDeclarationsLogicaluseSingleVarDeclaratorsingle-var-declaratorone-var
sparseArraysLogicalnoSparseArrayno-sparse-arraysno-sparse-arrayseslint/no-sparse-arrays
stringCaseMismatchesLogicalnoStringCaseMismatch
templateExpressionValuesLogical@typescript-eslint/restrict-template-expressionstypescript/restrict-template-expressions
throwErrorsLogicaluseThrowOnlyErrorno-throw-literalno-throw-literal@typescript-eslint/only-throw-errorsunicorn/throw-new-erroreslint/no-throw-literaltypescript/only-throw-errorunicorn/throw-new-error
tripleSlashReferencesLogicaltriple-slash-reference@typescript-eslint/triple-slash-referencetypescript/triple-slash-reference
tripleSlashReferenceValidityLogicalno-invalid-triple-slash-references
tsCommentsLogicalnoTsIgnoreban-ts-comment@typescript-eslint/ban-ts-commenttypescript/ban-ts-commenttypescript/prefer-ts-expect-error
typeConstituentDuplicatesLogical@typescript-eslint/no-duplicate-type-constituentstypescript/no-duplicate-type-constituents
unboundMethodsLogical@typescript-eslint/unbound-methodtypescript/unbound-method
unnecessaryBindLogicalno-extra-bindeslint/no-extra-bind
unnecessaryCatchesLogicalnoUselessCatchno-useless-catcheslint/no-useless-catch
unnecessaryComparisonsLogicaloxc/const-comparisonsoxc/double-comparisons
unnecessaryConditionsLogicalnoUnnecessaryConditions@typescript-eslint/no-unnecessary-condition
unnecessaryContinuesLogicalnoUselessContinue
unnecessaryFunctionCurriesLogicalno-useless-calleslint/no-useless-call
unnecessaryLogicalComparisonsLogicaluseSimplifiedLogicExpression@typescript-eslint/no-unnecessary-boolean-literal-comparetypescript/no-unnecessary-boolean-literal-compare
unnecessaryMathClampsLogicalnoConstantMathMinMaxClampoxc/bad-min-max-func
unnecessaryNumericFractionsLogicalunicorn/no-zero-fractionsunicorn/no-zero-fractions
unnecessarySpreadsLogicalunicorn/no-useless-spread
unnecessaryTemplateExpressionsLogicalnoUnusedTemplateLiteral@typescript-eslint/no-unnecessary-template-expressiontypescript/no-unnecessary-template-expression
unnecessaryTypeArgumentsLogical@typescript-eslint/no-unnecessary-type-argumentstypescript/no-unnecessary-type-arguments
unnecessaryTypeAssertionsLogical@typescript-eslint/no-unnecessary-type-assertiontypescript/no-unnecessary-type-assertion
unnecessaryTypeConstraintsLogicalnoUselessTypeConstraint@typescript-eslint/no-unnecessary-type-constrainttypescript/no-unnecessary-type-constraint
unnecessaryTypeConversionsLogical@typescript-eslint/no-unnecessary-type-conversion
unnecessaryTypeParametersLogical@typescript-eslint/no-unnecessary-type-parameters
unnecessaryUndefinedDefaultsLogicalnoUselessUndefinedunicorn/no-useless-undefinedunicorn/no-useless-undefined
unnecessaryUseStrictsLogicalnoRedundantUseStrict
unsafeDeclarationmergingLogicalnoUnsafeDeclarationMerging@typescript-eslint/no-unsafe-declaration-mergingtypescript/no-unsafe-declaration-merging
unsafeEnumComparisonsLogical@typescript-eslint/no-unsafe-enum-comparisontypescript/no-unsafe-enum-comparison
unsafeFinallyStatementsLogicalnoUnsafeFinallyno-unsafe-finallyno-unsafe-finallyeslint/no-unsafe-finally
unsafeFunctionTypesLogical@typescript-eslint/no-unsafe-function-typetypescript/no-unsafe-function-type
unsafeToStringLogical@typescript-eslint/no-base-to-stringtypescript/no-base-to-string
unsafeUnaryNegationsLogical@typescript-eslint/no-unsafe-unary-minustypescript/no-unsafe-unary-minus
unusedExpressionsLogicalno-unused-expressions@typescript-eslint/no-unused-expressionseslint/no-unused-expressions
unusedPrivateClassMembersLogicalnoUnusedPrivateClassMembersno-unused-private-class-memberseslint/no-unused-private-class-members
unusedSwitchStatementsLogicalnoUselessSwitchCaseunicorn/no-useless-switch-caseunicorn/no-useless-switch-case
unusedValuesLogicalno-useless-assignment
unusedVariablesLogicalnoUnusedFunctionParametersnoUnusedVariablesno-unused-varsno-unused-vars@typescript-eslint/no-unused-varseslint/no-unused-vars
withStatementsLogicalnoWithno-withno-witheslint/no-with
wrapperObjectTypesLogical@typescript-eslint/no-wrapper-object-types
accessorThisRecursionLogical (Strict)unicorn/no-accessor-recursionunicorn/no-accessor-recursion
awaitInsidePromiseMethodsLogical (Strict)unicorn/no-await-in-promise-methodsunicorn/no-await-in-promise-methods
caughtErrorCausesLogical (Strict)preserve-caught-error
dateNowTimestampsLogical (Strict)useDateNowunicorn/prefer-date-nowunicorn/prefer-date-now
directivePairsLogical (Strict)@eslint-community/eslint-comments/disable-enable-pair
errorMessagesLogical (Strict)useErrorMessageunicorn/error-messageunicorn/error-message
errorSubclassPropertiesLogical (Strict)unicorn/custom-error-definition
extraneousClassesLogical (Strict)@typescript-eslint/no-extraneous-classtypescript/no-extraneous-class
importExtraneousDependenciesLogical (Strict)import/no-extraneous-dependencies
invalidVoidTypesLogical (Strict)noConfusingVoidType@typescript-eslint/no-invalid-void-type
nonNullAssertedNullishCoalescesLogical (Strict)@typescript-eslint/no-non-null-asserted-nullish-coalescingtypescript/no-non-null-asserted-nullish-coalescing
nonNullAssertionsLogical (Strict)noNonNullAssertionno-non-null-assertion@typescript-eslint/no-non-null-assertiontypescript/no-non-null-assertion
reduceTypeParametersLogical (Strict)@typescript-eslint/prefer-reduce-type-parametertypescript/prefer-reduce-type-parameter
regexGraphemeStringLiteralsLogical (Strict)regexp/grapheme-string-literal
returnThisTypesLogical (Strict)@typescript-eslint/prefer-return-this-typetypescript/prefer-return-this-type
selfComparisonsLogical (Strict)noSelfCompareno-self-compareno-self-compareeslint/no-self-compare
stringCodePointsLogical (Strict)unicorn/prefer-code-pointunicorn/prefer-code-point
unifiedSignaturesLogical (Strict)useUnifiedTypeSignatures@typescript-eslint/unified-signatures
consoleCallsNonenoConsoleno-consoleno-consoleeslint/no-console
importTypeSideEffectsNone@typescript-eslint/no-import-type-side-effectstypescript/no-import-type-side-effects
loopAwaitsNonenoAwaitInLoopsno-await-in-loopno-await-in-loopeslint/no-await-in-loop
loopFunctionsNoneno-loop-func@typescript-eslint/no-loop-func
regexUnicodeFlagNonerequire-unicode-regexpregexp/require-unicode-regexp
restrictedGlobalsNonenoRestrictedGlobalsno-restricted-globalseslint/no-restricted-globals
restrictedIdentifiersNoneid-denylist
restrictedImportsNonenoRestrictedImportsno-restricted-imports@typescript-eslint/no-restricted-importseslint/no-restricted-imports
restrictedPropertiesNoneno-restricted-properties
restrictedSyntaxNoneno-restricted-syntax
restrictedTypesNonenoBannedTypes@typescript-eslint/no-restricted-types
arrayDeleteUnnecessaryCountsStylisticunicorn/no-unnecessary-array-splice-count
arrayExistenceChecksConsistencyStylisticunicorn/consistent-existence-index-checkunicorn/consistent-existence-index-check
arrayFindsStylistic@typescript-eslint/prefer-find
arrayFlatUnnecessaryDepthsStylisticunicorn/no-unnecessary-array-flat-depthunicorn/no-unnecessary-array-flat-depth
arrayIncludesStylistic@typescript-eslint/prefer-includes@typescript-eslint/prefer-includes
arrayLoopsStylisticnoForEachuseForOf@typescript-eslint/prefer-for-ofunicorn/no-array-for-eachunicorn/no-for-looptypescript/prefer-for-ofunicorn/no-array-for-each
arrayMutableReversesStylisticunicorn/no-array-reverse
arrayMutableSortsStylisticunicorn/no-array-sort
arraySliceUnnecessaryEndStylisticunicorn/no-unnecessary-slice-endunicorn/no-length-as-slice-endunicorn/no-unnecessary-slice-end
arrayTernarySpreadingConsistencyStylisticunicorn/consistent-empty-array-spreadunicorn/consistent-empty-array-spread
arrayTypesStylisticuseConsistentArrayType@typescript-eslint/array-typetypescript/array-type
asConstAssertionsStylisticuseAsConstAssertionprefer-as-const@typescript-eslint/prefer-as-consttypescript/prefer-as-const
assignmentOperatorShorthandsStylisticlogical-assignment-operators
builtinConstructorNewsStylisticnoInvalidBuiltinInstantiationunicorn/new-for-builtinsunicorn/new-for-builtins
chainedAssignmentsStylisticno-multi-assigneslint/no-multi-assign
classLiteralPropertiesStylistic@typescript-eslint/class-literal-property-style
consecutiveNonNullAssertionsStylisticnoExtraNonNullAssertionno-extra-non-null-assertion@typescript-eslint/no-extra-non-null-assertiontypescript/no-extra-non-null-assertion
emptyBlocksStylisticnoEmptyBlockStatementsno-emptyno-emptyeslint/no-empty
emptyModuleAttributesStylisticunicorn/require-module-attributes
emptyStaticBlocksStylisticnoEmptyBlockStatementsno-empty-static-blockeslint/no-empty-static-block
emptyTypeParameterListsStylisticnoEmptyTypeParameters
exponentiationOperatorsStylisticuseExponentiationOperatorprefer-exponentiation-operatoreslint/prefer-exponentiation-operator
exportFromImportsStylisticnoExportedImportsunicorn/prefer-export-from
forDirectionsStylisticuseValidForDirectionfor-directionfor-directioneslint/for-direction
functionCallSpreadsStylisticprefer-spreadunicorn/prefer-spreadeslint/prefer-spreadunicorn/prefer-spread
functionTypeDeclarationsStylisticuseShorthandFunctionType@typescript-eslint/prefer-function-typetypescript/prefer-function-type
genericConstructorCallsStylistic@typescript-eslint/consistent-generic-constructorstypescript/consistent-generic-constructors
groupedAccessorPairsStylisticuseGroupedAccessorPairsgrouped-accessor-pairseslint/grouped-accessor-pairs
importCyclesStylisticnoImportCyclesimport/no-cycleimport/no-cycle
importSelfStylisticimport/no-self-importimport/no-self-import
importUnnecessaryPathSegmentsStylisticimport/no-useless-path-segmentsimport/no-useless-path-segments
indexedObjectTypesStylistic@typescript-eslint/consistent-indexed-object-styletypescript/consistent-indexed-object-style
jsdocAccessTagsStylisticjsdoc/check-accessjsdoc/check-ass
jsdocEmptyBlocksStylisticjsdoc/no-blank-blocks
jsdocEmptyTagsStylisticjsdoc/empty-tagsjsdoc/empty-tags
jsdocImplementsTagsStylisticjsdoc/implements-on-classesjsdoc/implements-on-classes
jsdocParameterNamesStylisticjsdoc/check-param-names
jsdocPropertyNamesStylisticjsdoc/check-property-namesjsdoc/check-property-names
jsdocRedundantTypesStylisticjsdoc/no-types
jsdocTemplateNamesStylisticjsdoc/check-template-names
jsdocTypesSyntaxStylisticjsdoc/check-syntax, jsdoc/check-types
jsdocUnnecessaryReturnsStylisticjsdoc/require-returns-check
jsdocUnnecessaryYieldsStylisticjsdoc/require-yields-check
jsdocValidTypesStylisticjsdoc/valid-types
jsdocValuesStylisticjsdoc/check-values
jsdocYieldsStylisticjsdoc/require-yieldsjsdoc/require-yields
literalConstructorWrappersStylisticunicorn/prefer-bigint-literals
multilineAmbiguitiesStylisticno-unexpected-multilineeslint/no-unexpected-multiline
namespaceKeywordsStylisticuseNamespaceKeywordprefer-namespace-keyword@typescript-eslint/prefer-namespace-keywordtypescript/prefer-namespace-keyword
nestedStandaloneIfsStylisticuseCollapsedElseIfuseCollapsedIfno-lonely-ifunicorn/no-lonely-ifeslint/no-lonely-ifunicorn/no-lonely-if
nonNullableTypeAssertionsStylistic@typescript-eslint/non-nullable-type-assertion-styletypescript/non-nullable-type-assertion-style
nullishCoalescingOperatorsStylistic@typescript-eslint/prefer-nullish-coalescing
numericLiteralParsingStylisticuseNumericLiteralsprefer-numeric-literalseslint/prefer-numeric-literals
objectAssignSpreadsStylisticuseObjectSpreadprefer-object-spreadeslint/prefer-object-spread
objectHasOwnsStylisticnoPrototypeBuiltinsprefer-object-has-owneslint/prefer-object-has-own
objectShorthandStylisticuseConsistentObjectDefinitionsobject-shorthand
objectTypeDefinitionsStylisticuseConsistentTypeDefinitions@typescript-eslint/consistent-type-definitionstypescript/consistent-type-definitions
operatorAssignmentShorthandStylisticuseShorthandAssignoperator-assignmenteslint/operator-assignment
optionalChainOperatorsStylisticuseOptionalChain@typescript-eslint/prefer-optional-chain
overloadSignaturesAdjacentStylisticuseAdjacentOverloadSignaturesadjacent-overload-signatures@typescript-eslint/adjacent-overload-signaturestypescript/adjacent-overload-signatures
promiseFunctionAsyncStylistic@typescript-eslint/promise-function-asynctypescript/promise-function-async
propertyAccessNotationStylisticuseLiteralKeysdot-notation@typescript-eslint/dot-notation
regexCharacterClassRangesStylisticregexp/prefer-range
regexCharacterClassSetOperationsStylisticregexp/prefer-set-operation
regexConciseCharacterClassNegationsStylisticregexp/negation
regexDollarEscapesStylisticregexp/prefer-escape-replacement-dollar-char
regexPredefinedAssertionsStylisticregexp/prefer-predefined-assertion
regexRepeatQuantifiersStylisticregexp/prefer-quantifier
regexTestMethodsStylisticregexp/prefer-regexp-testunicorn/prefer-regexp-testunicorn/prefer-regexp-test
regexUnicodeEscapesStylisticregexp/unicode-escape
regexUnicodePropertiesStylisticregexp/unicode-property
regexUnnecessaryEscapesStylisticregexp/no-useless-escapeeslint/no-useless-escape
responseMethodsStylisticuseStaticResponseMethods
returnAssignmentsStylisticno-return-assigneslint/no-return-assign
shadowsStylisticnoShadowno-shadow@typescript-eslint/no-shadow
stringStartsEndsWithStylistic@typescript-eslint/prefer-string-starts-ends-withunicorn/prefer-string-starts-ends-with
symbolDescriptionsStylisticuseSymbolDescriptionsymbol-descriptioneslint/symbol-description
tslintCommentsStylistic@typescript-eslint/ban-tslint-commenttypescript/ban-tslint-comment
typeAssertionsStylistic@typescript-eslint/consistent-type-assertions
typeExportsStylisticconsistentTypeExports@typescript-eslint/consistent-type-exports
typeImportsStylisticconsistentTypeImports@typescript-eslint/consistent-type-importsimport/consistent-type-specifier-styleimport/consistent-type-specifier-styletypescript/consistent-type-imports
undefinedInitialValuesStylisticnoUselessUndefinedInitializationno-undefno-undef-init
unicodeBOMsStylisticunicode-bomeslint/unicode-bom
unnecessaryBlocksStylisticnoUselessLoneBlockStatementsno-lone-blockseslint/no-lone-blocks
unnecessaryBooleanCastsStylisticnoExtraBooleanCastno-extra-boolean-castno-extra-boolean-casteslint/no-extra-boolean-cast
unnecessaryComputedKeysStylisticuseLiteralKeysno-useless-computed-key
unnecessaryConcatentationStylisticnoUselessStringConcatno-useless-concateslint/no-useless-concat
unnecessaryConstructorsStylisticnoUselessConstructorno-useless-constructor@typescript-eslint/no-useless-constructoreslint/no-useless-constructor
unnecessaryEscapesStylisticnoUselessEscapeInRegexnoUselessEscapeInStringno-useless-escape
unnecessaryRenamesStylisticnoUselessRenameno-useless-renameno-useless-renameeslint/no-useless-rename
unnecessaryReturnsStylisticno-useless-return
unnecessaryTypeAnnotationsStylisticnoInferrableTypesno-inferrable-types@typescript-eslint/no-inferrable-typestypescript/no-inferrable-types
unusedLabelsStylisticnoUnusedLabelsno-unused-labelsno-unused-labelseslint/no-unused-labels
varDeclarationsStylisticnoVarno-varno-var
voidOperatorStylisticnoVoidno-voideslint/no-void
arrayFilteredFindsStylistic (Strict)unicorn/prefer-array-findunicorn/prefer-array-find
arrayFlatMapMethodsStylistic (Strict)useFlatMapunicorn/prefer-array-flat-mapunicorn/prefer-array-flat-map
arrayFlatMethodsStylistic (Strict)unicorn/prefer-array-flatunicorn/prefer-array-flat
arrayIncludesMethodsStylistic (Strict)unicorn/prefer-includes
arrayIndexOfMethodsStylistic (Strict)useIndexOfunicorn/prefer-array-index-ofunicorn/prefer-array-index-of
arraySomeMethodsStylistic (Strict)unicorn/prefer-array-someunicorn/prefer-array-some
atAccessesStylistic (Strict)useAtIndexunicorn/prefer-at
builtinCoercionsStylistic (Strict)unicorn/prefer-native-coercion-functionsunicorn/prefer-native-coercion-functions
caughtVariableNamesStylistic (Strict)unicorn/catch-error-nameunicorn/catch-error-name
classMethodsThisStylistic (Strict)class-methods-use-this@typescript-eslint/class-methods-use-this
combinedPushesStylistic (Strict)unicorn/prefer-single-call
destructuringConsistencyStylistic (Strict)unicorn/consistent-destructuring
directiveRequireDescriptionsStylistic (Strict)@eslint-community/eslint-comments/require-description
elseReturnsStylistic (Strict)noUselessElseno-else-returneslint/no-else-return
emptyFilesStylistic (Strict)unicorn/no-empty-fileunicorn/no-empty-file
emptyFunctionsStylistic (Strict)noEmptyBlockStatementsno-empty-function@typescript-eslint/no-empty-functioneslint/no-empty-function
escapeSequenceCasingStylistic (Strict)unicorn/escape-caseunicorn/escape-case
functionDefinitionScopeConsistencyStylistic (Strict)unicorn/consistent-function-scopingunicorn/consistent-function-scoping
globalThisAliasesStylistic (Strict)no-windowno-window-prefixunicorn/prefer-global-thisunicorn/prefer-global-this
jsdocAsterisksStylistic (Strict)jsdoc/no-multi-asterisksjsdoc/require-asterisk-prefix
jsdocInformativeDocsStylistic (Strict)jsdoc/informative-docs
jsdocMisleadingBlocksStylistic (Strict)jsdoc/no-bad-blocks
jsdocMultilineBlocksStylistic (Strict)jsdoc/multiline-blocks
jsdocParameterDescriptionHyphensStylistic (Strict)jsdoc/require-hyphen-before-param-description
jsdocTagNamesStylistic (Strict)jsdoc/check-tag-namesjsdoc/check-tag-names
mathMethodsStylistic (Strict)unicorn/prefer-modern-math-apisunicorn/prefer-modern-math-apis
namedDefaultExportsStylistic (Strict)unicorn/no-anonymous-default-exportimport/no-anonymous-default-exportunicorn/no-anonymous-default-export
namespaceImplicitAmbientImportsStylistic (Strict)no-implicit-declare-namespace-export
negativeIndexLengthMethodsStylistic (Strict)unicorn/prefer-negative-index
nonNullAssertionPlacementStylistic (Strict)@typescript-eslint/no-confusing-non-null-assertiontypescript/no-confusing-non-null-assertion
numberStaticMethodsStylistic (Strict)noGlobalIsFinitenoGlobalIsNanunicorn/prefer-number-propertiesunicorn/prefer-number-properties
numericLiteralCasingStylistic (Strict)unicorn/number-literal-caseunicorn/number-literal-case
numericSeparatorGroupsStylistic (Strict)useNumericSeparatorsunicorn/numeric-separators-styleunicorn/numeric-separators-style
objectEntriesMethodsStylistic (Strict)unicorn/prefer-object-from-entriesunicorn/prefer-object-from-entries
parameterReassignmentsStylistic (Strict)noParameterAssignno-param-reassign
regexCharacterClassesStylistic (Strict)regexp/prefer-character-class
regexDigitMatchersStylistic (Strict)regexp/prefer-d
regexExecutorsStylistic (strict)@typescript-eslint/prefer-regexp-execregexp/prefer-regexp-exec
regexHexadecimalEscapesStylistic (Strict)regexp/hexadecimal-escape
regexLetterCasingStylistic (Strict)regexp/letter-case
regexLookaroundAssertionsStylistic (Strict)regexp/prefer-lookaround
regexMatchNotationStylistic (Strict)regexp/match-any
regexNamedBackreferencesStylistic (Strict)regexp/prefer-named-backreference
regexNamedReplacementsStylistic (Strict)regexp/prefer-named-replacement
regexPlusQuantifiersStylistic (Strict)regexp/prefer-plus-quantifier
regexQuestionQuantifiersStylistic (Strict)regexp/prefer-question-quantifier
regexResultArrayGroupsStylistic (Strict)regexp/prefer-result-array-groups
regexStarQuantifiersStylistic (Strict)regexp/prefer-star-quantifier
regexUnicodeCodepointEscapesStylistic (Strict)regexp/prefer-unicode-codepoint-escapes
regexUnnecessaryNonCapturingGroupsStylistic (Strict)regexp/no-useless-non-capturing-group
regexWordMatchersStylistic (Strict)regexp/prefer-w
setHasExistenceChecksStylistic (Strict)unicorn/prefer-set-hasunicorn/prefer-set-has
setSizeLengthChecksStylistic (Strict)unicorn/prefer-set-sizeunicorn/prefer-set-size
sizeComparisonOperatorsStylistic (Strict)useExplicitLengthCheckunicorn/explicit-length-checkunicorn/explicit-length-check
staticMemberOnlyClassesStylistic (Strict)noStaticOnlyClassunicorn/no-static-only-classunicorn/no-static-only-class
stringSliceMethodsStylistic (Strict)noSubstrunicorn/prefer-string-sliceunicorn/prefer-string-slice
stringTrimMethodsStylistic (Strict)useTrimStartEndunicorn/prefer-string-trim-start-endunicorn/prefer-string-trim-start-end
structuredCloneMethodsStylistic (Strict)unicorn/prefer-structured-cloneunicorn/prefer-structured-clone
topLevelAwaitsStylistic (Strict)unicorn/prefer-top-level-await
undefinedTypeofChecksStylistic (Strict)unicorn/no-typeof-undefinedunicorn/no-typeof-undefined
unnecessaryTernariesStylistic (Strict)unicorn/prefer-logical-operator-over-ternaryunicorn/prefer-logical-operator-over-ternary
arrayCallbackReturnsUntypeduseIterableCallbackReturnarray-callback-returneslint/array-callback-return
caseDeclarationsUntypednoSwitchDeclarationsno-case-declarationsno-case-declarationseslint/no-case-declarations
classAssignmentsUntypednoClassAssignno-case-assignno-class-assigneslint/no-class-assign
classFieldDeclarationsUntypedunicorn/prefer-class-fields
classMemberDuplicatesUntypednoDuplicateClassMembersno-dupe-class-membersno-dupe-class-members@typescript-eslint/no-dupe-class-memberseslint/no-dupe-class-members
constantAssignmentsUntypednoConstAssignno-const-assignno-const-assigneslint/no-const-assign
constructorReturnsUntypednoConstructorReturnno-constructor-returneslint/no-constructor-return
constructorSupersUntypednoInvalidConstructorSuperconstructor-superconstructor-super
defaultParameterLastUntypeduseDefaultParameterLastdefault-param-lastdefault-param-last@typescript-eslint/default-param-lasteslint/default-param-last
duplicateArgumentsUntypednoDuplicateParametersno-dupe-argsno-dupe-args
functionAssignmentsUntypednoFunctionAssignno-func-assignno-func-assigneslint/no-func-assign
getterReturnsUntypeduseGetterReturngetter-returngetter-returneslint/getter-return
globalAssignmentsUntypednoGlobalAssignno-global-assignno-global-assigneslint/no-global-assign
globalObjectCallsUntypednoGlobalObjectCallsno-obj-callsno-obj-callseslint/no-obj-calls
guardedForInsUntypeduseGuardForInguard-for-inguard-for-ineslint/guard-for-in
importAssignmentsUntypednoImportAssignno-import-assignno-import-assign
invalidThisUntypedno-invalid-this@typescript-eslint/no-invalid-this
nativeObjectExtensionsUntypedno-extend-nativeeslint/no-extend-native
newNativeNonConstructorsUntypednoInvalidBuiltinInstantiationno-new-symbolno-new-native-nonconstructoreslint/no-new-native-nonconstructor
objectProtoUntypedno-protoeslint/no-proto
octalEscapesUntypednoOctalEscapeno-octal-escape
octalNumbersUntypedno-octal
sequencesUntypednoCommaOperatorno-sequences
setterReturnsUntypednoSetterReturnno-setter-returnno-setter-returneslint/no-setter-return
shadowedRestrictedNamesUntypednoShadowRestrictedNamesno-shadow-restricted-namesno-shadow-restricted-nameseslint/no-shadow-restricted-names
thisBeforeSuperUntypednoUnreachableSuperno-this-before-superno-this-before-supereslint/no-this-before-super
typeofComparisonsUntypeduseValidTypeofvalid-typeofvalid-typeofeslint/valid-typeof
unassignedVariablesUntypednoUnassignedVariablesno-unassigned-varseslint/no-unassigned-vars
undefinedVariablesUntypednoUndeclaredVariablesno-undefeslint/no-undef
unreachableStatementsUntypednoUnreachableno-unreachableno-unreachableeslint/no-unreachable
unsafeNegationsUntypednoUnsafeNegationno-unsafe-negationno-unsafe-negationeslint/no-unsafe-negation
unsafeOptionalChainsUntypednoUnsafeOptionalChainingno-unsafe-optional-chainingeslint/no-unsafe-optional-chaining
usageBeforeDefinitionUntypednoInvalidUseBeforeDeclarationno-use-before-define@typescript-eslint/no-use-before-define
useStrictDirectivesUntypedstrict
variableBlockScopeUsageUntypedblock-scoped-vareslint/block-scoped-var
variableDeletionsUntypedno-delete-varno-delete-vareslint/no-delete-var
variableRedeclarationsUntypednoRedeclareno-redeclareno-redeclare@typescript-eslint/no-redeclareeslint/no-redeclare

Flint’s TypeScript plugin provides the following file selector:

  • all: **/*.{cjs,js,jsx,mjs,ts,tsx}
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.