Upgrading @typescript-eslint/eslint-plugin 7 to 8
Breaking7.18.0 → 8.72.1Breaking27Platform6Deprecated7New96Changed71Fixed415Other10
Fetching 1324 releases from GitHub…1316 / 1324
BreakingUpgrade verdict
27 breaking changes and 6 platform requirement changes.
In plain terms
- Removes the previously deprecated error type from the eslint-plugin.
- The prefer-nullish-coalescing rule now ignores conditional tests by default.
- Project file matching now treats dots in file names as matchable by default.
- All formatting and layout rules have been removed from the plugin.
Must act Top 5 of 40 that need code or config changes
Node.js requirement changed in 8.0.0-alpha.2: ^18.18.0 || >=20.0.0 → ^18.18.0 || ^20.9.0 || >=21.1.0.
Drops graphemer.
Installs 24 packages in all (was 42).
What you must change
Breaking27
Removes the previously deprecated error type from the eslint-plugin.
Changes prefer-nullish-coalescing ignoreConditionalTests default to true.
prefer-nullish-coalescingignoreConditionalTestsEnables dot globs for project by default in typescript-estree.
projectRemoves formatting and layout rules from eslint-plugin.
Removes slow deprecated and isolated programs from typescript-estree.
Renames automaticSingleRunInference to disallowAutomaticSingleRunInference.
automaticSingleRunInferencedisallowAutomaticSingleRunInferenceRemoves deprecated type params from ast-spec.
Removes the IsNullableTypeOptions interface from type-utils.
IsNullableTypeOptionsRemoves EXPERIMENTAL_useSourceOfProjectReferenceRedirect from typescript-estree.
EXPERIMENTAL_useSourceOfProjectReferenceRedirectRemoves the no-useless-template-literals rule from eslint-plugin.
no-useless-template-literalsRemoves getTokenAtPosition from type-utils.
getTokenAtPositionDisables the checkThenables option by default in the no-floating-promises rule for v8.
no-floating-promisescheckThenablesRemoves the deprecated no-throw-literal rule from eslint-plugin.
no-throw-literalRemoves deprecated context helpers from utils.
Changes the type of
UnaryExpression.prefix to always be true.UnaryExpression.prefixTightens the types of
ArrowFunction, YieldExpression and TSTypePredicate.ArrowFunctionYieldExpressionTSTypePredicate[scope-manager] changes the unhelpful
aaa error message and makes analyze expect a Program.analyzeProgramSplits TSMappedType typeParameter into constraint and key.
TSMappedTypetypeParameterconstraintkeyAlways enables comment, loc, range, and tokens in the parser.
commentlocrangetokensAdds TSEnumBody node for TSEnumDeclaration body.
TSEnumBodyTSEnumDeclarationAligns no-unused-vars catch behavior to ESLint 9.
no-unused-varsSwaps LegacyESLint out for FlatESLint as the ESLint export in utils.
LegacyESLintFlatESLintESLintSplits no-empty-object-type out from ban-types and no-empty-interfaces.
no-empty-object-typeban-typesno-empty-interfacesAllows specifying additional rule meta.docs in RuleCreator.
RuleCreatormeta.docsApplies initial config changes for v8 in eslint-plugin.
Replaces ban-types with no-restricted-types, no-unsafe-function-type, and no-wrapper-object-types.
ban-typesno-restricted-typesno-unsafe-function-typeno-wrapper-object-typesSwitches rule-tester to flat config.
rule-testerPlatform6
Adds TypeScript as a peer dependency of rule-tester.
rule-testerAdds support for TypeScript 6.
Adds support for ESLint v10.
Adds support for TypeScript 5.8.
Adds support for TypeScript 5.7.
Adds support for TypeScript 5.6.
Deprecations to plan for
Deprecated7
Deprecates the extension rule in the no-restricted-imports rule.
no-restricted-imports[no-loop-func] supports
using / await using declarations and the rule is deprecated.no-loop-funcusingawait usingDeprecates defaultOptions in utils in favor of meta.defaultOptions.
defaultOptionsmeta.defaultOptionsDeprecates TestCaseError#type and LintMessage#nodeType in rule-tester.
TestCaseError#typeLintMessage#nodeTypeDeprecates tseslint.config() in favor of defineConfig.
tseslint.config()defineConfigDeprecates the getSourceFileOfNode function in type-utils.
getSourceFileOfNodeDeprecates the no-loss-of-precision extension rule.
no-loss-of-precisionAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
const config: (style: 'glob' | 'minimatch') => { files: string[]; rules: Record<string, 'error' | 'off' | 'warn'> } - added:
export = config
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/adjacent-overload-signatures': 'error'; '@typescript-eslint/array-type': 'error'; '@typescript-eslint/await-t… - added:
export = _default
- added:
const _default: { parser: string; parserOptions: { sourceType: 'module' }; plugins: string[] } - added:
export = _default
- added:
const _default: { parserOptions: { program: null; project: false; projectService: false }; rules: { '@typescript-eslint/await-thenable': 'off'; '@typescript-eslint/consistent-… - added:
export = _default
- added:
const _default: { overrides: { files: string[]; rules: Record<string, 'error' | 'off' | 'warn'> }[] } - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/ban-ts-comment': 'error'; 'no-array-constructor': 'off'; '@typescript-eslint/no-array-constructor': 'error';… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/await-thenable': 'error'; '@typescript-eslint/ban-ts-comment': 'error'; 'no-array-constructor': 'off'; '@type… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/await-thenable': 'error'; '@typescript-eslint/no-array-delete': 'error'; '@typescript-eslint/no-base-to-strin… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/ban-ts-comment': ['error', { minimumDescriptionLength: number }]; 'no-array-constructor': 'off'; '@typescript… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/await-thenable': 'error'; '@typescript-eslint/ban-ts-comment': ['error', { minimumDescriptionLength: number }… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/await-thenable': 'error'; '@typescript-eslint/no-array-delete': 'error'; '@typescript-eslint/no-base-to-strin… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/adjacent-overload-signatures': 'error'; '@typescript-eslint/array-type': 'error'; '@typescript-eslint/ban-tsl… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { '@typescript-eslint/adjacent-overload-signatures': 'error'; '@typescript-eslint/array-type': 'error'; '@typescript-eslint/ban-tsl… - added:
export = _default
- added:
const _default: { extends: string[]; rules: { 'dot-notation': 'off'; '@typescript-eslint/dot-notation': 'error'; '@typescript-eslint/non-nullable-type-assertion-style': 'error… - added:
export = _default
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.Config
- added:
default _default - added:
function _default(_plugin: FlatConfig.Plugin, _parser: FlatConfig.Parser): FlatConfig.Config
- added:
default _default - added:
function _default(_plugin: FlatConfig.Plugin, _parser: FlatConfig.Parser): FlatConfig.Config
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
default _default - added:
function _default(plugin: FlatConfig.Plugin, parser: FlatConfig.Parser): FlatConfig.ConfigArray
- added:
const _default: { configs: { all: { extends: string[]; rules: { '@typescript-eslint/adjacent-overload-signatures': 'error'; '@typescript-eslint/array-type': 'error'; '@typescr… - added:
export = _default
- added:
const _default: { flatConfigs: { 'flat/all': FlatConfig.ConfigArray; 'flat/base': FlatConfig.Config; 'flat/disable-type-checked': FlatConfig.Config; 'flat/eslint-recommended':… - added:
export = _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'adjacentSignature', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-es… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'errorStringArray' | 'errorStringArrayReadonly' | 'errorStringArraySimple' | 'errorStringArraySimpleReadonly' | 'errorStringGeneric' | 'errorStringGenericSimpl… - added:
type OptionString = 'array' | 'array-simple' | 'generic' - added:
type Options = [{ default: OptionString; readonly?: OptionString }]
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'await' | 'awaitUsingOfNonAsyncDisposable' | 'convertToOrdinaryFor' | 'forAwaitOfNonAsyncIterable' | 'invalidPromiseAggregatorInput' | 'removeAwait' - added:
type Options = [{ allowMixedPromiseArrays?: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
interface OptionsShape - added:
property OptionsShape.'ts-check'?: DirectiveConfig - added:
property OptionsShape.'ts-expect-error'?: DirectiveConfig - added:
property OptionsShape.'ts-ignore'?: DirectiveConfig - added:
property OptionsShape.'ts-nocheck'?: DirectiveConfig - added:
property OptionsShape.minimumDescriptionLength?: number - added:
type DirectiveConfig = boolean | 'allow-with-description' | { descriptionFormat: string } - added:
type MessageIds = 'replaceTsIgnoreWithTsExpectError' | 'tsDirectiveComment' | 'tsDirectiveCommentDescriptionNotMatchPattern' | 'tsDirectiveCommentRequiresDescription' | 'tsIgnor… - added:
type Options = [OptionsShape]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'commentDetected', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-esli… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'preferFieldStyle' | 'preferFieldStyleSuggestion' | 'preferGetterStyle' | 'preferGetterStyleSuggestion' - added:
type Options = ['fields' | 'getters']
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'missingThis', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-esl… - added:
default _default - added:
type MessageIds = 'missingThis' - added:
type Options = [{ enforceForClassFields?: boolean; exceptMethods?: string[]; ignoreClassesThatImplementAnInterface?: boolean | 'public-fields'; ignoreOverrideMethods?: boolea…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'preferConstructor' | 'preferTypeAnnotation' - added:
type Options = ['constructor' | 'type-annotation']
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'preferIndexSignature' | 'preferIndexSignatureSuggestion' | 'preferRecord' | 'preferRecordSuggestion' - added:
type Options = ['index-signature' | 'record']
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'missingReturn' | 'missingReturnValue' | 'unexpectedReturnValue', [({ treatUndefinedAsUnspecified?: boo… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'angle-bracket' | 'as' | 'never' | 'replaceArrayTypeAssertionWithAnnotation' | 'replaceArrayTypeAssertionWithSatisfies' | 'replaceObjectTypeAssertionWithAnnota… - added:
type Options = readonly [OptUnion]
- added:
const _default: TSESLint.RuleModule<'interfaceOverType' | 'typeOverInterface', [string], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'multipleExportsAreTypes' | 'singleExportIsType' | 'typeOverValue' - added:
type Options = [{ fixMixedExportsWithInlineTypeSpecifier: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'avoidImportType' | 'noImportTypeAnnotations' | 'someImportsAreOnlyTypes' | 'typeOverValue' - added:
type Options = [{ disallowTypeAnnotations?: boolean; fixStyle?: FixStyle; prefer?: Prefer }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'shouldBeLast', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint'… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'useBrackets' | 'useDot', [{ allowIndexSignaturePropertyAccess?: boolean; allowKeywords?: boolean; allo… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
function getEnumKeyForLiteral(enumLiterals: ts.LiteralType[], literal: unknown): string | null - added:
function getEnumLiterals(type: ts.Type): ts.LiteralType[] - added:
function getEnumTypes(typeChecker: ts.TypeChecker, type: ts.Type): ts.Type[] - added:
function getEnumValueType(type: ts.Type): ts.TypeFlags | undefined - added:
function isMismatchedEnumComparisonTypes(typeChecker: ts.TypeChecker, leftType: ts.Type, rightType: ts.Type): boolean
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'missingReturnType', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/… - added:
default _default - added:
type MessageIds = 'missingReturnType' - added:
type Options = [{ allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean; allowDirectConstAssertionInArrowFunctions?: boolean; allowedNames?: string[]; allowExpressio…
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
interface Config - added:
property Config.accessibility?: AccessibilityLevel - added:
property Config.ignoredMethodNames?: string[] - added:
property Config.overrides?: { accessors?: AccessibilityLevel; constructors?: AccessibilityLevel; methods?: AccessibilityLevel; parameterProperties?: AccessibilityLevel; properties?: AccessibilityLevel } - added:
type MessageIds = 'addExplicitAccessibility' | 'missingAccessibility' | 'unwantedPublicAccessibility' - added:
type Options = [Config]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'anyTypedArg' | 'anyTypedArgUnnamed' | 'missingArgType' | 'missingArgTypeUnnamed' | 'missingReturnType' - added:
type Options = [{ allowArgumentsExplicitlyTypedAsAny?: boolean; allowDirectConstAssertionInArrowFunctions?: boolean; allowedNames?: string[]; allowHigherOrderFunctions?: bool…
- added:
const rules: Record<'adjacent-overload-signatures' | 'array-type' | 'await-thenable' | 'ban-ts-comment' | 'ban-tslint-comment' | 'class-literal-property-style' | 'class-met… - added:
export = rules
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'initialized' | 'notInitialized', ['always' | 'never', ({ ignoreForLoopInit?: boolean } | undefined)?],… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'exceed', ({ countVoidThis?: boolean; max: number } | { countVoidThis?: boolean; maximum: number })[],… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
const defaultOrder: MemberType[] - added:
default _default - added:
type MessageIds = 'incorrectGroupOrder' | 'incorrectOrder' | 'incorrectRequiredMembersOrder' - added:
type Options = [{ classes?: OrderConfig; classExpressions?: OrderConfig; default?: OrderConfig; interfaces?: OrderConfig; typeLiterals?: OrderConfig }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'convertToMethodSignature' | 'errorMethod' | 'errorProperty' - added:
type Options = [('method' | 'property')?]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'doesNotMatchFormat' | 'doesNotMatchFormatTrimmed' | 'missingAffix' | 'missingUnderscore' | 'satisfyCustom' | 'unexpectedUnderscore' - added:
type Options = Selector[]
- added:
enum MetaSelectors - added:
enum Modifiers - added:
enum PredefinedFormats - added:
enum Selectors - added:
enum TypeModifiers - added:
enum UnderscoreOptions - added:
member MetaSelectors.accessor = 4112 - added:
member MetaSelectors.default = -1 - added:
member MetaSelectors.memberLike = 8184 - added:
member MetaSelectors.method = 448 - added:
member MetaSelectors.property = 3584 - added:
member MetaSelectors.typeLike = 253952 - added:
member MetaSelectors.variableLike = 7 - added:
member Modifiers.'#private' = 64 - added:
member Modifiers.abstract = 128 - added:
member Modifiers.async = 16384 - added:
member Modifiers.const = 1 - added:
member Modifiers.default = 32768 - added:
member Modifiers.destructured = 256 - added:
member Modifiers.exported = 1024 - added:
member Modifiers.global = 512 - added:
member Modifiers.namespace = 65536 - added:
member Modifiers.override = 8192 - added:
member Modifiers.private = 32 - added:
member Modifiers.protected = 16 - added:
member Modifiers.public = 8 - added:
member Modifiers.readonly = 2 - added:
member Modifiers.requiresQuotes = 4096 - added:
member Modifiers.static = 4 - added:
member Modifiers.unused = 2048 - added:
member PredefinedFormats.PascalCase = 3 - added:
member PredefinedFormats.StrictPascalCase = 4 - added:
member PredefinedFormats.UPPER_CASE = 6 - added:
member PredefinedFormats.camelCase = 1 - added:
member PredefinedFormats.snake_case = 5 - added:
member PredefinedFormats.strictCamelCase = 2 - added:
member Selectors.autoAccessor = 4096 - added:
member Selectors.class = 8192 - added:
member Selectors.classMethod = 64 - added:
member Selectors.classProperty = 512 - added:
member Selectors.classicAccessor = 16 - added:
member Selectors.enum = 65536 - added:
member Selectors.enumMember = 32 - added:
member Selectors.function = 2 - added:
member Selectors.import = 262144 - added:
member Selectors.interface = 16384 - added:
member Selectors.objectLiteralMethod = 128 - added:
member Selectors.objectLiteralProperty = 1024 - added:
member Selectors.parameter = 4 - added:
member Selectors.parameterProperty = 8 - added:
member Selectors.typeAlias = 32768 - added:
member Selectors.typeMethod = 256 - added:
member Selectors.typeParameter = 131072 - added:
member Selectors.typeProperty = 2048 - added:
member Selectors.variable = 1 - added:
member TypeModifiers.array = 2097152 - added:
member TypeModifiers.boolean = 131072 - added:
member TypeModifiers.function = 1048576 - added:
member TypeModifiers.number = 524288 - added:
member TypeModifiers.string = 262144 - added:
member UnderscoreOptions.allow = 2 - added:
member UnderscoreOptions.allowDouble = 5 - added:
member UnderscoreOptions.allowSingleOrDouble = 6 - added:
member UnderscoreOptions.forbid = 1 - added:
member UnderscoreOptions.require = 3 - added:
member UnderscoreOptions.requireDouble = 4 - added:
type IndividualAndMetaSelectorsString = MetaSelectorsString | SelectorsString - added:
type MetaSelectorsString = keyof typeof MetaSelectors - added:
type ModifiersString = keyof typeof Modifiers - added:
type PredefinedFormatsString = keyof typeof PredefinedFormats - added:
type SelectorsString = keyof typeof Selectors - added:
type TypeModifiersString = keyof typeof TypeModifiers - added:
type UnderscoreOptionsString = keyof typeof UnderscoreOptions
- added:
const PredefinedFormatToCheckFunction: Readonly<Record<PredefinedFormats, (name: string) => boolean>>
- added:
export { Context } from './types' - added:
export { Modifiers } from './enums' - added:
export { PredefinedFormatsString } from './enums' - added:
export { SCHEMA } from './schema' - added:
export { Selector } from './types' - added:
export { ValidatorFunction } from './types' - added:
export { parseOptions } from './parse-options' - added:
export { selectorTypeToMessageString } from './shared'
- added:
function parseOptions(context: Context): ParsedOptions
- added:
const SCHEMA: JSONSchema.JSONSchema4
- added:
function isMetaSelector(selector: IndividualAndMetaSelectorsString | MetaSelectors | Selectors): selector is MetaSelectorsString - added:
function isMethodOrPropertySelector(selector: IndividualAndMetaSelectorsString | MetaSelectors | Selectors): boolean - added:
function selectorTypeToMessageString(selectorType: SelectorsString): string
- added:
interface MatchRegex - added:
interface NormalizedMatchRegex - added:
interface NormalizedSelector - added:
interface Selector - added:
property MatchRegex.match: boolean - added:
property MatchRegex.regex: string - added:
property NormalizedMatchRegex.match: boolean - added:
property NormalizedMatchRegex.regex: RegExp - added:
property NormalizedSelector.custom: NormalizedMatchRegex | null - added:
property NormalizedSelector.filter: NormalizedMatchRegex | null - added:
property NormalizedSelector.format: PredefinedFormats[] | null - added:
property NormalizedSelector.leadingUnderscore: UnderscoreOptions | null - added:
property NormalizedSelector.modifierWeight: number - added:
property NormalizedSelector.modifiers: Modifiers[] | null - added:
property NormalizedSelector.prefix: string[] | null - added:
property NormalizedSelector.selector: MetaSelectors | Selectors - added:
property NormalizedSelector.suffix: string[] | null - added:
property NormalizedSelector.trailingUnderscore: UnderscoreOptions | null - added:
property NormalizedSelector.types: TypeModifiers[] | null - added:
property Selector.custom?: MatchRegex - added:
property Selector.filter?: string | MatchRegex - added:
property Selector.format: PredefinedFormatsString[] | null - added:
property Selector.leadingUnderscore?: UnderscoreOptionsString - added:
property Selector.modifiers?: ModifiersString[] - added:
property Selector.prefix?: string[] - added:
property Selector.selector: IndividualAndMetaSelectorsString | IndividualAndMetaSelectorsString[] - added:
property Selector.suffix?: string[] - added:
property Selector.trailingUnderscore?: UnderscoreOptionsString - added:
property Selector.types?: TypeModifiersString[] - added:
type Context = Readonly<TSESLint.RuleContext<MessageIds, Options>> - added:
type ParsedOptions = Record<SelectorsString, ValidatorFunction> - added:
type ValidatorFunction = (node: TSESTree.Identifier | TSESTree.Literal | TSESTree.PrivateIdentifier, modifiers?: Set<Modifiers>) => void
- added:
function createValidator(type: SelectorsString, context: Context, allConfigs: NormalizedSelector[]): ValidatorFunction
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'useLiteral', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageId, [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'noArrayDelete' | 'useSplice'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'baseArrayJoin' | 'baseToString' - added:
type Options = [{ ignoredTypeNames?: string[]; checkUnknown?: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageId, [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'confusingAssign' | 'confusingEqual' | 'confusingOperator' | 'notNeedInAssign' | 'notNeedInEqualTest' | 'notNeedInOperator' | 'wrapUpLeft'
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'invalidVoidExpr' | 'invalidVoidExprArrow' | 'invalidVoidExprArrowWrapVoid' | 'invalidVoidExprReturn' | 'invalidVoidExprReturnLast' | 'invalidVoidExprReturnWra… - added:
type Options = [{ ignoreArrowShorthand?: boolean; ignoreVoidOperator?: boolean; ignoreVoidReturningFunctions?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unexpected', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'duplicateValue', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslin… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'duplicate' | 'unnecessary' - added:
type Options = [{ ignoreIntersections?: boolean; ignoreUnions?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'dynamicDelete', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'suggestComment' | 'unexpected', [{ allow?: string[] }], import('../../rules').ESLintPluginDocs, import… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'noEmpty' | 'noEmptyWithSuper' - added:
type Options = [{ allowSingleExtends?: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type AllowInterfaces = 'always' | 'never' | 'with-single-extends' - added:
type AllowObjectTypes = 'always' | 'never' - added:
type MessageIds = 'noEmptyInterface' | 'noEmptyInterfaceWithSuper' | 'noEmptyObject' | 'replaceEmptyInterface' | 'replaceEmptyInterfaceWithSuper' | 'replaceEmptyObjectType' - added:
type Options = [{ allowInterfaces?: AllowInterfaces; allowObjectTypes?: AllowObjectTypes; allowWithName?: string }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'suggestNever' | 'suggestPropertyKey' | 'suggestUnknown' | 'unexpectedAny' - added:
type Options = [{ fixToUnknown?: boolean; ignoreRestArgs?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noExtraNonNullAssertion', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'empty' | 'onlyConstructor' | 'onlyStatic' - added:
type Options = [{ allowConstructorOnly?: boolean; allowEmpty?: boolean; allowStaticOnly?: boolean; allowWithDecorator?: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'floating' | 'floatingFixAwait' | 'floatingFixVoid' | 'floatingPromiseArray' | 'floatingPromiseArrayVoid' | 'floatingUselessRejectionHandler' | 'floatingUseles… - added:
type Options = [{ allowForKnownSafeCalls?: TypeOrValueSpecifier[]; allowForKnownSafePromises?: TypeOrValueSpecifier[]; checkThenables?: boolean; ignoreIIFE?: boolean; ignoreV…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'forInViolation', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslin… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noGeneratedEmptyObjectType', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/ut… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noFunctionConstructor' | 'noImpliedEvalError', [], import('../../rules').ESLintPluginDocs, import('@ty… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'useTopLevelQualifier', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'useTopLevelQualifier' - added:
type Options = []
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noInferrableType', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/t… - added:
default _default - added:
type MessageIds = 'noInferrableType' - added:
type Options = [{ ignoreParameters?: boolean; ignoreProperties?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unexpectedThis', [({ capIsConstructor?: boolean } | undefined)?], import('../../rules').ESLintPluginDo… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, [Options], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-esli… - added:
default _default - added:
interface Options - added:
property Options.allowAsThisParameter?: boolean - added:
property Options.allowInGenericTypeArguments?: boolean | [string, ...string[]] - added:
type MessageIds = 'invalidVoidForGeneric' | 'invalidVoidNotReturn' | 'invalidVoidNotReturnOrGeneric' | 'invalidVoidNotReturnOrThisParam' | 'invalidVoidNotReturnOrThisParamOrGene…
- added:
const _default: TSESLint.RuleModule<'unsafeRefs', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noLossOfPrecision', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-es… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<NonNullable<typeof baseRule>> - added:
type Options = InferOptionsTypeFromRule<NonNullable<typeof baseRule>>
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noMagic', [{ detectObjects?: boolean; enforceConst?: boolean; ignore?: (number | string)[]; ignoreArra… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<'meaninglessVoidOnNonCall' | 'meaninglessVoidOperator' | 'removeVoid', Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListen… - added:
default _default - added:
type Options = [{ checkNever: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'errorMessageClass' | 'errorMessageInterface', [], import('../../rules').ESLintPluginDocs, import('@typ… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
interface ChecksConditionalsOptions - added:
interface ChecksVoidReturnOptions - added:
property ChecksConditionalsOptions.flagUnions?: FlagUnionsOptions - added:
property ChecksVoidReturnOptions.arguments?: boolean - added:
property ChecksVoidReturnOptions.attributes?: boolean - added:
property ChecksVoidReturnOptions.inheritedMethods?: boolean - added:
property ChecksVoidReturnOptions.properties?: boolean - added:
property ChecksVoidReturnOptions.returns?: boolean - added:
property ChecksVoidReturnOptions.variables?: boolean - added:
type FlagUnionsOptions = 'all' | 'none' | 'strict' - added:
type MessageId = 'conditional' | 'predicate' | 'spread' | 'voidReturnArgument' | 'voidReturnAttribute' | 'voidReturnInheritedMethod' | 'voidReturnProperty' | 'voidReturnReturnV… - added:
type Options = [{ checksConditionals?: boolean | ChecksConditionalsOptions; checksSpreads?: boolean; checksVoidReturn?: boolean | ChecksVoidReturnOptions }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'mixed', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').RuleL… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'moduleSyntaxIsPreferred', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/… - added:
default _default - added:
type MessageIds = 'moduleSyntaxIsPreferred' - added:
type Options = [{ allowDeclarations?: boolean; allowDefinitionFiles?: boolean }]
- added:
const _default: TSESLint.RuleModule<'noNonNullAssertedNullishCoalescing' | 'suggestRemovingNonNull', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { nam… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'noNonNullOptionalChain' | 'suggestRemovingNonNull', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'noNonNull' | 'suggestOptionalChain'
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'redeclared' | 'redeclaredAsBuiltin' | 'redeclaredBySyntax' - added:
type Options = [{ builtinGlobals?: boolean; ignoreDeclarationMerge?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'errorTypeOverrides' | 'literalOverridden' | 'overridden' | 'overrides' | 'primitiveOverridden', [], im… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noRequireImports', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/t… - added:
default _default - added:
type MessageIds = 'noRequireImports' - added:
type Options = [{ allow?: string[]; allowAsImport?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'everything' | 'everythingWithCustomMessage' | 'importName' | 'importNameWithCustomMessage' | 'path' |… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'bannedTypeMessage' | 'bannedTypeReplacement' - added:
type Options = [{ types?: Types }]
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'noEnumShadow' | 'noShadow' | 'noShadowGlobal' - added:
type Options = [{ allow?: string[]; builtinGlobals?: boolean; hoist?: 'all' | 'functions' | 'functions-and-types' | 'never' | 'types'; ignoreFunctionTypeParameterNameValueSha…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'thisAssignment' | 'thisDestructure' - added:
type Options = [{ allowDestructuring?: boolean; allowedNames?: string[] }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'noCompositionAlias' | 'noTypeAlias' - added:
type Options = [{ allowAliases?: Values; allowCallbacks?: 'always' | 'never'; allowConditionalTypes?: 'always' | 'never'; allowConstructors?: 'always' | 'never'; allowGeneric…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'comparingNullableToFalse' | 'comparingNullableToTrueDirect' | 'comparingNullableToTrueNegated' | 'direct' | 'negated' | 'noStrictNullCheck' - added:
type Options = [{ allowComparingNullableBooleansToFalse?: boolean; allowComparingNullableBooleansToTrue?: boolean; allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: bo…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint'… - added:
default _default - added:
type MessageId = 'alwaysFalsy' | 'alwaysFalsyFunc' | 'alwaysNullish' | 'alwaysTruthy' | 'alwaysTruthyFunc' | 'comparisonBetweenLiteralTypes' | 'never' | 'neverNullish' | 'never… - added:
type Options = [{ allowConstantLoopConditions?: AllowConstantLoopConditions | LegacyAllowConstantLoopConditions; allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: bool…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unnecessaryAssign', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-es… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unnecessaryQualifier', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'noUnnecessaryTemplateExpression', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageId = 'noUnnecessaryTemplateExpression'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unnecessaryTypeParameter', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/util… - added:
default _default - added:
type MessageIds = 'unnecessaryTypeParameter'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'contextuallyInferredTypeArguments' | 'contextuallyUnnecessary' | 'unnecessaryAssertion' - added:
type Options = [{ checkLiteralConstAssertions?: boolean; typesToIgnore?: string[] }]
- added:
const _default: TSESLint.RuleModule<'removeUnnecessaryConstraint' | 'unnecessaryConstraint', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: strin… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').Ru… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'replaceUsagesWithConstraint' | 'sole', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').Ru… - added:
default _default - added:
type MessageIds = 'unsafeArgument' | 'unsafeArraySpread' | 'unsafeSpread' | 'unsafeTupleSpread'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'anyAssignment' | 'anyAssignmentThis' | 'unsafeArrayPattern' | 'unsafeArrayPatternFromTuple' | 'unsafeA… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').Ru… - added:
default _default - added:
type MessageIds = 'errorCall' | 'errorCallThis' | 'errorNew' | 'errorTemplateTag' | 'unsafeCall' | 'unsafeCallThis' | 'unsafeNew' | 'unsafeTemplateTag'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unsafeMerging', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').Ru… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'mismatchedCase' | 'mismatchedCondition' | 'replaceValueWithEnum', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { n… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'bannedFunctionType', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-e… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'errorComputedMemberAccess' | 'errorMemberExpression' | 'errorThisMemberExpression' | 'unsafeComputedMemberAccess' | 'unsafeMemberExpression' | 'unsafeThisMemb… - added:
type Options = [{ allowOptionalChaining?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unsafeReturn' | 'unsafeReturnAssignment' | 'unsafeReturnThis', [], import('../../rules').ESLintPluginD… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unsafeOfAnyTypeAssertion' | 'unsafeToAnyTypeAssertion' | 'unsafeToUnconstrainedTypeAssertion' | 'unsaf… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unaryMinus', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').… - added:
default _default - added:
type MessageIds = 'unaryMinus' - added:
type Options = []
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'unusedExpression', [{ allowShortCircuit?: boolean; allowTaggedTemplates?: boolean; allowTernary?: bool… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: ESLintUtils.RuleModule<'unusedPrivateClassMember', [], import('../../rules').ESLintPluginDocs, ESLintUtils.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'unusedPrivateClassMember'
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'removeUnusedImportDeclaration' | 'removeUnusedVar' | 'unusedVar' | 'usedIgnoredVar' | 'usedOnlyAsType' - added:
type Options = ['all' | 'local' | { args?: 'after-used' | 'all' | 'none'; argsIgnorePattern?: string; caughtErrors?: 'all' | 'none'; caughtErrorsIgnorePattern?: string; destr…
- added:
const _default: TSESLint.RuleModule<'noUseBeforeDefine', Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
interface Config - added:
property Config.allowNamedExports?: boolean - added:
property Config.classes?: boolean - added:
property Config.enums?: boolean - added:
property Config.functions?: boolean - added:
property Config.ignoreTypeReferences?: boolean - added:
property Config.typedefs?: boolean - added:
property Config.variables?: boolean - added:
type MessageIds = 'noUseBeforeDefine' - added:
type Options = ['nofunc' | Config]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noUselessConstructor' | 'removeConstructor', [], import('../../rules').ESLintPluginDocs, import('@type… - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = InferOptionsTypeFromRule<typeof baseRule>
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'uselessExport', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'noVarReqs', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslin… - added:
default _default - added:
type MessageIds = 'noVarReqs' - added:
type Options = [{ allow: string[] }]
- added:
const _default: TSESLint.RuleModule<'bannedClassType', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'preferNonNullAssertion', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'object' | 'undef' - added:
type Options = [{ allow?: TypeOrValueSpecifier[]; allowRethrowing?: boolean; allowThrowingAny?: boolean; allowThrowingUnknown?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'preferClassProperty' | 'preferParameterProperty' - added:
type Options = [{ allow?: Modifier[]; prefer?: Prefer }]
- added:
const _default: TSESLint.RuleModule<'preferConstAssertion' | 'variableConstAssertion' | 'variableSuggest', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> &… - added:
default _default
- added:
const _default: TSESLint.RuleModule<'preferDestructuring', Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule> - added:
type Options = [BaseOptions[0], EnforcementOptions]
- added:
const _default: TSESLint.RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'defineInitializer' | 'defineInitializerSuggestion'
- added:
const _default: TSESLint.RuleModule<'preferFind' | 'preferFindSuggestion', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: TSESLint.RuleModule<'preferForOf', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: TSESLint.RuleModule<'functionTypeOverCallableType' | 'unexpectedThisOnFunctionOnlyInterface', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener… - added:
const phrases: { readonly TSInterfaceDeclaration: 'Interface'; readonly TSTypeLiteral: 'Type literal' } - added:
default _default
- added:
const _default: TSESLint.RuleModule<'preferIncludes' | 'preferStringIncludes', [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'notLiteral' | 'notLiteralOrBitwiseExpression', [{ allowBitwiseExpressions: boolean }], import('../../r… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'useNamespace', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint'… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'noStrictNullCheck' | 'preferNullishOverAssignment' | 'preferNullishOverOr' | 'preferNullishOverTernary' | 'suggestNullish' - added:
type Options = [{ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean; ignoreBooleanCoercion?: boolean; ignoreConditionalTests?: boolean; ignoreIfStatements?: bo…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<PreferOptionalChainMessageIds, [PreferOptionalChainOptions], import('../../rules').ESLintPluginDocs, im… - added:
default _default
- added:
interface PreferOptionalChainOptions - added:
property PreferOptionalChainOptions.allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing?: boolean - added:
property PreferOptionalChainOptions.checkAny?: boolean - added:
property PreferOptionalChainOptions.checkBigInt?: boolean - added:
property PreferOptionalChainOptions.checkBoolean?: boolean - added:
property PreferOptionalChainOptions.checkNumber?: boolean - added:
property PreferOptionalChainOptions.checkString?: boolean - added:
property PreferOptionalChainOptions.checkUnknown?: boolean - added:
property PreferOptionalChainOptions.requireNullish?: boolean - added:
type PreferOptionalChainMessageIds = 'optionalChainSuggest' | 'preferOptionalChain'
- added:
function analyzeChain(context: RuleContext<PreferOptionalChainMessageIds, [PreferOptionalChainOptions]>, parserServices: ParserServicesWithTypeInformation, options: PreferOptionalChainOptions, node: TSESTree.Node, operator: TSESTree.LogicalExpression['operator'], chain: ValidOperand[], lastChainOperand?: LastChainOperand): void
- added:
function checkNullishAndReport(context: RuleContext<PreferOptionalChainMessageIds, [PreferOptionalChainOptions]>, parserServices: ParserServicesWithTypeInformation, { requireNullish }: PreferOptionalChainOptions, maybeNullishNodes: TSESTree.Expression[], descriptor: ReportDescriptor<PreferOptionalChainMessageIds>): void
- added:
const enum NodeComparisonResult - added:
function compareNodes(nodeA: CompareNodesArgument, nodeB: CompareNodesArgument): NodeComparisonResult - added:
member NodeComparisonResult.Equal = 'Equal' - added:
member NodeComparisonResult.Invalid = 'Invalid' - added:
member NodeComparisonResult.Subset = 'Subset'
- added:
const enum ComparisonType - added:
const enum NullishComparisonType - added:
const enum OperandValidity - added:
const enum Yoda - added:
function gatherLogicalOperands(node: TSESTree.LogicalExpression, parserServices: ParserServicesWithTypeInformation, sourceCode: Readonly<SourceCode>, options: PreferOptionalChainOptions): { newlySeenLogicals: Set<TSESTree.LogicalExpression>; operands: Operand[] } - added:
interface InvalidOperand - added:
interface LastChainOperand - added:
interface ValidOperand - added:
member ComparisonType.Equal = 'Equal' - added:
member ComparisonType.NotEqual = 'NotEqual' - added:
member ComparisonType.NotStrictEqual = 'NotStrictEqual' - added:
member ComparisonType.StrictEqual = 'StrictEqual' - added:
member NullishComparisonType.Boolean = 'Boolean' - added:
member NullishComparisonType.EqualNullOrUndefined = 'EqualNullOrUndefined' - added:
member NullishComparisonType.NotBoolean = 'NotBoolean' - added:
member NullishComparisonType.NotEqualNullOrUndefined = 'NotEqualNullOrUndefined' - added:
member NullishComparisonType.NotStrictEqualNull = 'NotStrictEqualNull' - added:
member NullishComparisonType.NotStrictEqualUndefined = 'NotStrictEqualUndefined' - added:
member NullishComparisonType.StrictEqualNull = 'StrictEqualNull' - added:
member NullishComparisonType.StrictEqualUndefined = 'StrictEqualUndefined' - added:
member OperandValidity.Invalid = 'Invalid' - added:
member OperandValidity.Last = 'Last' - added:
member OperandValidity.Valid = 'Valid' - added:
member Yoda.No = 1 - added:
member Yoda.Unknown = 2 - added:
member Yoda.Yes = 0 - added:
property InvalidOperand.type: OperandValidity.Invalid - added:
property LastChainOperand.comparedName: TSESTree.Node - added:
property LastChainOperand.comparisonType: ComparisonType - added:
property LastChainOperand.comparisonValue: TSESTree.Node - added:
property LastChainOperand.node: TSESTree.BinaryExpression - added:
property LastChainOperand.type: OperandValidity.Last - added:
property LastChainOperand.yoda: Yoda - added:
property ValidOperand.comparedName: TSESTree.Node - added:
property ValidOperand.comparisonType: NullishComparisonType - added:
property ValidOperand.isYoda: boolean - added:
property ValidOperand.node: TSESTree.Expression - added:
property ValidOperand.type: OperandValidity.Valid
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'rejectAnError', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-e… - added:
default _default - added:
type MessageIds = 'rejectAnError' - added:
type Options = [{ allow?: TypeOrValueSpecifier[]; allowEmptyReject?: boolean; allowThrowingAny?: boolean; allowThrowingUnknown?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'preferReadonly', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-… - added:
default _default - added:
type MessageIds = 'preferReadonly' - added:
type Options = [{ onlyInlineLambdas?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'shouldBeReadonly', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/t… - added:
default _default - added:
type MessageIds = 'shouldBeReadonly' - added:
type Options = [{ allow?: TypeOrValueSpecifier[]; checkParameterProperties?: boolean; ignoreInferredTypes?: boolean; treatMethodsAsReadonly?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'preferTypeParameter', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'regExpExecOverStringMatch', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/uti… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'useThisType', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint')… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'preferEndsWith' | 'preferStartsWith' - added:
type Options = [{ allowSingleElementEquality?: AllowedSingleElementEquality }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'preferExpectErrorComment', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/util… - added:
default _default - added:
type MessageIds = 'preferExpectErrorComment'
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'missingAsync' | 'missingAsyncHybridReturn' - added:
type Options = [{ allowAny?: boolean; allowedPromiseNames?: string[]; checkArrowFunctions?: boolean; checkFunctionDeclarations?: boolean; checkFunctionExpressions?: boolean;…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'mismatch', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint').Ru… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'requireCompare', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-… - added:
default _default - added:
type MessageIds = 'requireCompare' - added:
type Options = [{ ignoreStringArrays?: boolean }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'missingAwait' | 'removeAsync', [], import('../../rules').ESLintPluginDocs, import('@typescript-eslint/… - added:
default _default
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'bigintAndNumber' | 'invalid' | 'mismatched' - added:
type Options = [{ allowAny?: boolean; allowBoolean?: boolean; allowNullish?: boolean; allowNumberAndString?: boolean; allowRegExp?: boolean; skipCompoundAssignments?: boolean…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'invalidType', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-esl… - added:
default _default - added:
type MessageId = 'invalidType' - added:
type Options = [{ allow?: TypeOrValueSpecifier[] } & Partial<Record<(typeof optionTesters)[number]['option'], boolean>>]
- added:
const _default: TSESLint.RuleModule<'disallowedPromiseAwait' | 'disallowedPromiseAwaitSuggestion' | 'nonPromiseAwait' | 'requiredPromiseAwait' | 'requiredPromiseAwaitSuggestio… - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'notSorted' | 'notSortedNamed' | 'suggestFix' - added:
type Options = [{ caseSensitive?: boolean; checkIntersections?: boolean; checkUnions?: boolean; groupOrder?: string[] }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint'… - added:
default _default - added:
type MessageId = 'conditionFixCastBoolean' | 'conditionFixCompareArrayLengthNonzero' | 'conditionFixCompareArrayLengthZero' | 'conditionFixCompareEmptyString' | 'conditionFixCo… - added:
type Options = [{ allowAny?: boolean; allowNullableBoolean?: boolean; allowNullableEnum?: boolean; allowNullableNumber?: boolean; allowNullableObject?: boolean; allowNullable…
- added:
const _default: TSESLint.RuleModule<MessageId, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default
- added:
const _default: TSESLint.RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'addMissingCases' | 'dangerousDefaultCase' | 'switchIsNotExhaustive' - added:
type Options = [{ allowDefaultCaseForExhaustiveSwitch?: boolean; requireDefaultForNonUnion?: boolean; defaultCaseCommentPattern?: string; considerDefaultExhaustiveForUnions?:…
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<'tripleSlashReference', Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/uti… - added:
default _default - added:
type MessageIds = 'tripleSlashReference' - added:
type Options = [{ lib?: 'always' | 'never'; path?: 'always' | 'never'; types?: 'always' | 'never' | 'prefer-import' }]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
const enum OptionKeys - added:
default _default - added:
member OptionKeys.ArrayDestructuring = 'arrayDestructuring' - added:
member OptionKeys.ArrowParameter = 'arrowParameter' - added:
member OptionKeys.MemberVariableDeclaration = 'memberVariableDeclaration' - added:
member OptionKeys.ObjectDestructuring = 'objectDestructuring' - added:
member OptionKeys.Parameter = 'parameter' - added:
member OptionKeys.PropertyDeclaration = 'propertyDeclaration' - added:
member OptionKeys.VariableDeclaration = 'variableDeclaration' - added:
member OptionKeys.VariableDeclarationIgnoreFunction = 'variableDeclarationIgnoreFunction' - added:
type MessageIds = 'expectedTypedef' | 'expectedTypedefNamed' - added:
type Options = [Partial<Record<OptionKeys, boolean>>]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'unbound' | 'unboundWithoutThisAnnotation' - added:
type Options = [Config]
- added:
const _default: import('@typescript-eslint/utils/ts-eslint').RuleModule<MessageIds, Options, import('../../rules').ESLintPluginDocs, import('@typescript-eslint/utils/ts-eslint… - added:
default _default - added:
type MessageIds = 'allParametersAreSame' | 'omittingRestParameter' | 'omittingSingleParameter' | 'singleParameterDifference' - added:
type Options = [{ ignoreDifferentlyNamedParameters?: boolean; ignoreOverloadsWithDifferentJSDoc?: boolean }]
- added:
const _default: TSESLint.RuleModule<MessageIds, [], import('../../rules').ESLintPluginDocs, TSESLint.RuleListener> & { name: string } - added:
default _default - added:
type MessageIds = 'addUnknownRestTypeAnnotationSuggestion' | 'addUnknownTypeAnnotationSuggestion' | 'useUnknown' | 'useUnknownArrayDestructuringPattern' | 'useUnknownObjectDestr…
- added:
class FunctionSignature - added:
method FunctionSignature.consumeRemainingArguments(): void - added:
method FunctionSignature.getNextParameterType(): ts.Type | null - added:
static method FunctionSignature.create(checker: ts.TypeChecker, tsNode: ts.CallLikeExpression): FunctionSignature
- added:
function findTruthinessAssertedArgument(services: ParserServicesWithTypeInformation, node: TSESTree.CallExpression): TSESTree.Expression | undefined - added:
function findTypeGuardAssertedArgument(services: ParserServicesWithTypeInformation, node: TSESTree.CallExpression): { argument: TSESTree.Expression; asserts: boolean; type: ts.Type } | undefined
- added:
export * from '@typescript-eslint/utils/ast-utils' - added:
function forEachChildESTree<Result>(node: TSESTree.Node, callback: (child: TSESTree.Node) => false | Result | null | undefined): Result | undefined - added:
function forEachReturnStatement<T>(body: ts.Block, visitor: (stmt: ts.ReturnStatement) => T): T | undefined - added:
function getNameLocationInGlobalDirectiveComment(sourceCode: TSESLint.SourceCode, comment: TSESTree.Comment, name: string): TSESTree.SourceLocation
- added:
function hasBaseTypes(type: Type): type is InterfaceType - added:
function isNumberLike(type: Type): boolean - added:
function isStringLike(type: Type): boolean - added:
function matchesTypeOrBaseType(services: ParserServicesWithTypeInformation, matcher: (type: Type) => boolean, type: Type, seen?: Set<Type>): boolean
- added:
class Member - added:
function analyzeClassMemberUsage(program: TSESTree.Program, scopeManager: ScopeManager): ReadonlyMap<ClassNode, ClassScopeResult> - added:
interface ClassScopeResult - added:
method Member.isAccessor(): boolean - added:
method Member.isHashPrivate(): boolean - added:
method Member.isPrivate(): boolean - added:
method Member.isStatic(): boolean - added:
method Member.isUsed(): boolean - added:
property Member.readCount: number - added:
property Member.writeCount: number - added:
readonly property ClassScopeResult.className: string | null - added:
readonly property ClassScopeResult.members: { readonly instance: Map<Key, Member>; readonly static: Map<Key, Member> } - added:
readonly property Member.key: Key - added:
readonly property Member.name: string - added:
readonly property Member.nameNode: TSESTree.Node - added:
readonly property Member.node: MemberNode - added:
static method Member.create(node: MemberNode): Member | null
- added:
function extractNameForMember(node: MemberNode): ExtractedName | null - added:
function extractNameForMemberExpression(node: TSESTree.MemberExpression): ExtractedName | null - added:
interface ExtractedName - added:
property ExtractedName.codeName: string - added:
property ExtractedName.key: Key - added:
property ExtractedName.nameNode: TSESTree.Node
- added:
function privateKey(node: TSESTree.PrivateIdentifier): PrivateKey - added:
function publicKey(name: string): PublicKey - added:
type ClassNode = TSESTree.ClassDeclaration | TSESTree.ClassExpression - added:
type Key = PrivateKey | PublicKey - added:
type MemberNode = TSESTree.AccessorProperty | TSESTree.MethodDefinition | TSESTree.PropertyDefinition | TSESTree.TSAbstractAccessorProperty | TSESTree.TSAbstractMethodDefinition… - added:
type PrivateKey = string & { __brand: 'private-key' } - added:
type PublicKey = string & { __brand: 'public-key' }
- added:
function collectVariables<MessageIds extends string, Options extends readonly unknown[]>(context: Readonly<TSESLint.RuleContext<MessageIds, Options>>): VariableAnalysis
- added:
const createRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, ESLintPl…
- added:
function escapeRegExp(string?: string): string
- added:
function ancestorHasReturnType(node: FunctionNode): boolean - added:
function checkFunctionExpressionReturnType(info: FunctionInfo<FunctionExpression>, options: Options, sourceCode: TSESLint.SourceCode, report: (loc: TSESTree.SourceLocation) => void): void - added:
function checkFunctionReturnType({ node, returns }: FunctionInfo<FunctionNode>, options: Options, sourceCode: TSESLint.SourceCode, report: (loc: TSESTree.SourceLocation) => void): void - added:
function doesImmediatelyReturnFunctionExpression({ node, returns }: FunctionInfo<FunctionNode>): boolean - added:
function isTypedFunctionExpression(node: FunctionExpression, options: Options): boolean - added:
function isValidFunctionExpressionReturnType(node: FunctionExpression, options: Options): boolean - added:
interface FunctionInfo<T extends FunctionNode> - added:
property FunctionInfo.node: T - added:
property FunctionInfo.returns: TSESTree.ReturnStatement[] - added:
type FunctionExpression = TSESTree.ArrowFunctionExpression | TSESTree.FunctionExpression - added:
type FunctionNode = FunctionExpression | TSESTree.FunctionDeclaration
- added:
function getAwaitTokenRemovalRange(sourceCode: TSESLint.SourceCode, awaitToken: TSESTree.IdentifierToken & { value: 'await' }): TSESTree.Range
- added:
function getBaseTypesOfClassMember(services: ParserServicesWithTypeInformation, memberNode: TSESTree.MethodDefinition | TSESTree.PropertyDefinition): Generator<{ baseType: ts.Type; baseMemberType: ts.Type; heritageToken: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword }>
- added:
function getConstraintInfo(checker: ts.TypeChecker, type: ts.Type): ConstraintTypeInfo - added:
interface ConstraintTypeInfoConstrained - added:
interface ConstraintTypeInfoNonGeneric - added:
interface ConstraintTypeInfoUnconstrained - added:
property ConstraintTypeInfoConstrained.constraintType: ts.Type - added:
property ConstraintTypeInfoConstrained.isTypeParameter: true - added:
property ConstraintTypeInfoNonGeneric.constraintType: ts.Type - added:
property ConstraintTypeInfoNonGeneric.isTypeParameter: false - added:
property ConstraintTypeInfoUnconstrained.constraintType: undefined - added:
property ConstraintTypeInfoUnconstrained.isTypeParameter: true - added:
type ConstraintTypeInfo = ConstraintTypeInfoConstrained | ConstraintTypeInfoNonGeneric | ConstraintTypeInfoUnconstrained
- added:
const getESLintCoreRule: <R extends RuleId>(ruleId: R) => RuleMap[R] - added:
function maybeGetESLintCoreRule<R extends RuleId>(ruleId: R): RuleMap[R] | null
- added:
function getFixOrSuggest<MessageId extends string>({ fixOrSuggest, suggestion }: { fixOrSuggest: 'fix' | 'none' | 'suggest'; suggestion: TSESLint.SuggestionReportDescriptor<MessageId> }): { fix: TSESLint.ReportFixFunction } | { suggest: TSESLint.SuggestionReportDescriptor<MessageId>[] } | undefined
- added:
function getForStatementHeadLoc(sourceCode: TSESLint.SourceCode, node: TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement): TSESTree.SourceLocation
- added:
function getFunctionHeadLoc(node: FunctionNode, sourceCode: TSESLint.SourceCode): TSESTree.SourceLocation
- added:
function getMemberHeadLoc(sourceCode: Readonly<TSESLint.SourceCode>, node: TSESTree.AccessorProperty | TSESTree.MethodDefinition | TSESTree.PropertyDefinition | TSESTree.TSAbstractAccessorProperty | TSESTree.TSAbstractMethodDefinition | TSESTree.TSAbstractPropertyDefinition): TSESTree.SourceLocation - added:
function getParameterPropertyHeadLoc(sourceCode: Readonly<TSESLint.SourceCode>, node: TSESTree.TSParameterProperty, nodeName: string): TSESTree.SourceLocation
- added:
enum OperatorPrecedence - added:
function getBinaryOperatorPrecedence(kind: SyntaxKind | TSESTreeOperatorKind): OperatorPrecedence - added:
function getOperatorPrecedence(nodeKind: SyntaxKind, operatorKind: SyntaxKind, hasArguments?: boolean): OperatorPrecedence - added:
function getOperatorPrecedenceForNode(node: TSESTree.Node): OperatorPrecedence - added:
member OperatorPrecedence.Additive = 13 - added:
member OperatorPrecedence.Assignment = 3 - added:
member OperatorPrecedence.BitwiseAND = 9 - added:
member OperatorPrecedence.BitwiseOR = 7 - added:
member OperatorPrecedence.BitwiseXOR = 8 - added:
member OperatorPrecedence.Coalesce = 4 - added:
member OperatorPrecedence.Comma = 0 - added:
member OperatorPrecedence.Conditional = 4 - added:
member OperatorPrecedence.Equality = 10 - added:
member OperatorPrecedence.Exponentiation = 15 - added:
member OperatorPrecedence.Highest = 20 - added:
member OperatorPrecedence.Invalid = -1 - added:
member OperatorPrecedence.LeftHandSide = 18 - added:
member OperatorPrecedence.LogicalAND = 6 - added:
member OperatorPrecedence.LogicalOR = 5 - added:
member OperatorPrecedence.Lowest = 0 - added:
member OperatorPrecedence.Member = 19 - added:
member OperatorPrecedence.Multiplicative = 14 - added:
member OperatorPrecedence.Primary = 20 - added:
member OperatorPrecedence.Relational = 11 - added:
member OperatorPrecedence.Shift = 12 - added:
member OperatorPrecedence.Spread = 1 - added:
member OperatorPrecedence.Unary = 16 - added:
member OperatorPrecedence.Update = 17 - added:
member OperatorPrecedence.Yield = 2
- added:
function getParentFunctionNode(node: TSESTree.Node): TSESTree.ArrowFunctionExpression | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | null
- added:
function getStaticStringValue(node: TSESTree.Node): string | null
- added:
function getStringLength(value: string): number
- added:
function getTextWithParentheses(sourceCode: Readonly<SourceCode>, node: TSESTree.Node): string
- added:
function getThisExpression(node: TSESTree.Node): TSESTree.ThisExpression | undefined
- added:
const getValueOfLiteralType: (type: ts.LiteralType) => bigint | number | string
- added:
function getWrappedCode(text: string, nodePrecedence: OperatorPrecedence, parentPrecedence: OperatorPrecedence): string
- added:
function getMovedNodeCode(params: { destinationNode: TSESTree.Node; nodeToMove: TSESTree.Node; sourceCode: Readonly<TSESLint.SourceCode> }): string - added:
function getWrappingFixer(params: WrappingFixerParams): (fixer: TSESLint.RuleFixer) => TSESLint.RuleFix - added:
function isStrongPrecedenceNode(innerNode: TSESTree.Node): boolean - added:
function isWeakPrecedenceParent(node: TSESTree.Node): boolean
- added:
function hasOverloadSignatures(node: TSESTree.FunctionDeclaration | TSESTree.MethodDefinition, context: RuleContext<string, unknown[]>): boolean
- added:
const applyDefault: typeof ESLintUtils.applyDefault, deepMerge: typeof ESLintUtils.deepMerge, getParserServices: typeof ESLintUtils.getParserServices, isObjectNotArray: typeof ESL… - added:
export * from './FunctionSignature' - added:
export * from './astUtils' - added:
export * from './baseTypeUtils' - added:
export * from './collectUnusedVariables' - added:
export * from './createRule' - added:
export * from './getAwaitTokenRemovalRange' - added:
export * from './getBaseTypesOfClassMember' - added:
export * from './getConstraintInfo' - added:
export * from './getFixOrSuggest' - added:
export * from './getFunctionHeadLoc' - added:
export * from './getOperatorPrecedence' - added:
export * from './getStaticStringValue' - added:
export * from './getStringLength' - added:
export * from './getTextWithParentheses' - added:
export * from './getThisExpression' - added:
export * from './getValueOfLiteralType' - added:
export * from './getWrappingFixer' - added:
export * from './hasOverloadSignatures' - added:
export * from './isArrayMethodCallWithPredicate' - added:
export * from './isAssignee' - added:
export * from './isConditionalTest' - added:
export * from './isHigherPrecedenceThanAwait' - added:
export * from './isNodeEqual' - added:
export * from './isNullLiteral' - added:
export * from './isStartOfArrowFunctionBodyNeedingParentheses' - added:
export * from './isStartOfExpressionStatement' - added:
export * from './isStartOfExpressionStatementNeedingParentheses' - added:
export * from './isUndefinedIdentifier' - added:
export * from './misc' - added:
export * from './needsPrecedingSemiColon' - added:
export * from './needsToBeAwaited' - added:
export * from './objectIterators' - added:
export * from './scopeUtils' - added:
export * from './skipChainExpression' - added:
export * from './truthinessUtils' - added:
export * from './types' - added:
export * from './walkStatements' - added:
export * from '@typescript-eslint/type-utils' - added:
type InferMessageIdsTypeFromRule<T> = ESLintUtils.InferMessageIdsTypeFromRule<T> - added:
type InferOptionsTypeFromRule<T> = ESLintUtils.InferOptionsTypeFromRule<T>
- added:
function isArrayMethodCallWithPredicate(context: RuleContext<string, unknown[]>, services: ParserServicesWithTypeInformation, node: TSESTree.CallExpression): boolean
- added:
function isAssignee(node: TSESTree.Node): boolean
- added:
function isConditionalTest(node: TSESTree.Node): boolean
- added:
function isHigherPrecedenceThanAwait(tsNode: ts.Node): boolean
- added:
function isNodeEqual(a: TSESTree.Node, b: TSESTree.Node): boolean
- added:
function isNullLiteral(i: TSESTree.Node): i is TSESTree.NullLiteral
- added:
function isPromiseAggregatorMethod(context: RuleContext<string, unknown[]>, services: ParserServicesWithTypeInformation, node: TSESTree.CallExpression): boolean
- added:
function isStartOfArrowFunctionBodyNeedingParentheses(node: TSESTree.Node, firstToken: TSESTree.Token, sourceCode: TSESLint.SourceCode): boolean
- added:
function isStartOfExpressionStatement(node: TSESTree.Node): boolean
- added:
function isStartOfExpressionStatementNeedingParentheses(node: TSESTree.Node, firstToken: TSESTree.Token): boolean
- added:
function isTypeImport(definition?: Definition): definition is ImportBindingDefinition
- added:
function isMergedTypeValueVariable(variable: ScopeVariable): boolean - added:
function isTypeOnlyReference(variable: ScopeVariable, ref: TSESLint.Scope.Reference): boolean
- added:
function isUndefinedIdentifier(i: TSESTree.Node): boolean
- added:
function lazyRules<T extends Record<string, Loader>>(loaders: T): Record<keyof T, ESLintPluginRuleModule>
- added:
const isStaticMemberAccessOfValue: (memberExpression: NodeWithKey, context: RuleContext<string, unknown[]>, ...values: (string | symbol)[]) => boolean - added:
enum MemberNameType - added:
function arrayGroupByToMap<T, Key extends number | string>(array: T[], getKey: (item: T) => Key): Map<Key, T[]> - added:
function arraysAreEqual<T>(a: T[] | undefined, b: T[] | undefined, eq: (a: T, b: T) => boolean): boolean - added:
function findFirstResult<T, U>(inputs: T[], getResult: (t: T) => U | undefined): U | undefined - added:
function findLastIndex<T>(members: T[], predicate: (member: T) => boolean | null | undefined): number - added:
function formatWordList(words: string[]): string - added:
function getEnumNames<T extends string>(myEnum: Record<T, unknown>): T[] - added:
function getNameFromIndexSignature(node: TSESTree.TSIndexSignature): string - added:
function getNameFromMember(member: TSESTree.AccessorProperty | TSESTree.MethodDefinition | TSESTree.Property | TSESTree.PropertyDefinition | TSESTree.TSAbstractAccessorProperty | TSESTree.TSAbstractMethodDefinition | TSESTree.TSAbstractPropertyDefinition | TSESTree.TSMethodSignature | TSESTree.TSPropertySignature, sourceCode: TSESLint.SourceCode): { name: string; type: MemberNameType } - added:
function getStaticMemberAccessValue(node: NodeWithKey, { sourceCode }: RuleContext<string, unknown[]>): string | symbol | undefined - added:
function isDefinitionFile(fileName: string): boolean - added:
function isParenlessArrowFunction(node: TSESTree.ArrowFunctionExpression, sourceCode: TSESLint.SourceCode): boolean - added:
function isRestParameterDeclaration(decl: ts.Declaration): boolean - added:
function typeNodeRequiresParentheses(node: TSESTree.TypeNode, text: string): boolean - added:
function upperCaseFirst(str: string): string - added:
member MemberNameType.Expression = 4 - added:
member MemberNameType.Normal = 3 - added:
member MemberNameType.Private = 1 - added:
member MemberNameType.Quoted = 2 - added:
type Equal<T> = (a: T, b: T) => boolean - added:
type ExcludeKeys<Obj extends Record<string, unknown>, Keys extends keyof Obj> = { [k in Exclude<keyof Obj, Keys>]: Obj[k] } - added:
type NodeWithKey = TSESTree.AccessorProperty | TSESTree.MemberExpression | TSESTree.MethodDefinition | TSESTree.Property | TSESTree.PropertyDefinition | TSESTree.TSAbstractMethod… - added:
type RequireKeys<Obj extends Record<string, unknown>, Keys extends keyof Obj> = { [k in Keys]-?: Exclude<Obj[k], undefined> } & ExcludeKeys<Obj, Keys>
- added:
function needsPrecedingSemicolon(sourceCode: SourceCode, node: TSESTree.Node): boolean
- added:
enum Awaitable - added:
function needsToBeAwaited(checker: ts.TypeChecker, node: ts.Node, type: ts.Type): Awaitable - added:
member Awaitable.Always = 0 - added:
member Awaitable.May = 2 - added:
member Awaitable.Never = 1
- added:
function objectForEachKey<T extends Record<string, unknown>>(obj: T, callback: (key: keyof T) => void): void - added:
function objectMapKey<T extends Record<string, unknown>, Return>(obj: T, callback: (key: keyof T) => Return): Return[] - added:
function objectReduceKey<T extends Record<string, unknown>, Accumulator>(obj: T, callback: (acc: Accumulator, key: keyof T) => Accumulator, initial: Accumulator): Accumulator
- added:
function parseCatchCall(node: TSESTree.CallExpression, context: RuleContext<string, unknown[]>): { onRejected?: TSESTree.Expression | undefined; object: TSESTree.Expression } | undefined - added:
function parseFinallyCall(node: TSESTree.CallExpression, context: RuleContext<string, unknown[]>): { object: TSESTree.Expression; onFinally?: TSESTree.Expression | undefined } | undefined - added:
function parseThenCall(node: TSESTree.CallExpression, context: RuleContext<string, unknown[]>): { onFulfilled?: TSESTree.Expression | undefined; onRejected?: TSESTree.Expression | undefined; object: TSESTree.Expression } | undefined
- added:
function rangeToLoc(sourceCode: TSESLint.SourceCode, range: TSESLint.AST.Range): TSESTree.SourceLocation
- added:
function referenceContainsTypePredicate(node: TSESTree.Node): boolean
- added:
function referenceContainsTypeQuery(node: TSESTree.Node): boolean
- added:
function isReferenceToGlobalFunction(calleeName: string, node: TSESTree.Node, sourceCode: SourceCode): boolean
- added:
function skipChainExpression<T extends TSESTree.Node>(node: T): T | TSESTree.ChainElement
- added:
const isPossiblyFalsy: (type: ts.Type) => boolean - added:
const isPossiblyTruthy: (type: ts.Type) => boolean
- added:
type MakeRequired<Base, Key extends keyof Base> = Omit<Base, Key> & Required<Record<Key, NonNullable<Base[Key]>>> - added:
type ValueOf<T> = T[keyof T]
- added:
function walkStatements(body: readonly TSESTree.Statement[]): Generator<TSESTree.Statement>
- added:
const cjsExport: { flatConfigs: { 'flat/all': FlatConfig.ConfigArray; 'flat/base': FlatConfig.Config; 'flat/disable-type-checked': FlatConfig.Config; 'flat/eslint-recommended':… - added:
export = cjsExport
- removed:
default rules - removed:
type TypeScriptESLintRules = Record<string, RuleModule<string, unknown[]>> - added:
export = rules - added:
namespace rules