@yunarch/config-web
Version:
Shared configurations for web projects.
1,124 lines (1,121 loc) • 412 kB
TypeScript
import { FlatConfigComposer } from 'eslint-flat-config-utils';
import { ParserOptions } from '@typescript-eslint/parser';
import { Linter } from 'eslint';
import { FlatGitignoreOptions } from 'eslint-config-flat-gitignore';
/* eslint-disable */
/* prettier-ignore */
interface RuleOptions {
/**
* Enforces explicit boolean values for boolean attributes.
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
*/
'@eslint-react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `<Fragment>` components instead of the shorthand `<>` or `</>` syntax.
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
*/
'@eslint-react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
/**
* Disallow `children` in void DOM elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
*/
'@eslint-react/dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
/**
* Disallow `dangerouslySetInnerHTML`.
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
*/
'@eslint-react/dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
/**
* Disallow `dangerouslySetInnerHTML` and `children` at the same time.
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
*/
'@eslint-react/dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
/**
* Disallow `findDOMNode`.
* @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
*/
'@eslint-react/dom/no-find-dom-node'?: Linter.RuleEntry<[]>
/**
* Disallow `flushSync`.
* @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
*/
'@eslint-react/dom/no-flush-sync'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `ReactDom.hydrate()` with `hydrateRoot()`.
* @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
*/
'@eslint-react/dom/no-hydrate'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `type` attribute for `button` elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
*/
'@eslint-react/dom/no-missing-button-type'?: Linter.RuleEntry<[]>
/**
* Enforces explicit `sandbox` attribute for `iframe` elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
*/
'@eslint-react/dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
/**
* Enforces the absence of a `namespace` in React elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-namespace
*/
'@eslint-react/dom/no-namespace'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `ReactDom.render()` with `createRoot(node).render()`.
* @see https://eslint-react.xyz/docs/rules/dom-no-render
*/
'@eslint-react/dom/no-render'?: Linter.RuleEntry<[]>
/**
* Disallow the return value of `ReactDOM.render`.
* @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
*/
'@eslint-react/dom/no-render-return-value'?: Linter.RuleEntry<[]>
/**
* Disallow `javascript:` URLs as attribute values.
* @see https://eslint-react.xyz/docs/rules/dom-no-script-url
*/
'@eslint-react/dom/no-script-url'?: Linter.RuleEntry<[]>
/**
* Disallow unknown `DOM` property.
* @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
*/
'@eslint-react/dom/no-unknown-property'?: Linter.RuleEntry<EslintReactDomNoUnknownProperty>
/**
* Enforces `sandbox` attribute for `iframe` elements is not set to unsafe combinations.
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
*/
'@eslint-react/dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
/**
* Disallow `target="_blank"` without `rel="noreferrer noopener"`.
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
*/
'@eslint-react/dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `useFormState` with `useActionState`.
* @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
*/
'@eslint-react/dom/no-use-form-state'?: Linter.RuleEntry<[]>
/**
* Disallow `children` in void DOM elements.
* @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
*/
'@eslint-react/dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>
/**
* Disallow useless `forwardRef` calls on components that don't use `ref`s.
* @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
*/
'@eslint-react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useCallback`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
*/
'@eslint-react/hooks-extra/ensure-use-callback-has-non-empty-deps'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useMemo`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
*/
'@eslint-react/hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
/**
* Disallow direct calls to the `set` function of `useState` in `useEffect`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
*/
'@eslint-react/hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
/**
* Disallow direct calls to the `set` function of `useState` in `useLayoutEffect`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-layout-effect
*/
'@eslint-react/hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useCallback`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
*/
'@eslint-react/hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary usage of `useMemo`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
*/
'@eslint-react/hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>
/**
* Enforces that a function with the `use` prefix should use at least one Hook inside of it.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
*/
'@eslint-react/hooks-extra/no-useless-custom-hooks'?: Linter.RuleEntry<[]>
/**
* Enforces function calls made inside `useState` to be wrapped in an `initializer function`.
* @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
*/
'@eslint-react/hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
/**
* Enforces that the 'key' attribute is placed before the spread attribute in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
*/
'@eslint-react/jsx-key-before-spread'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate props in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
*/
'@eslint-react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>
/**
* Disallows 'IIFE' in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-iife
*/
'@eslint-react/jsx-no-iife'?: Linter.RuleEntry<[]>
/**
* Disallow undefined variables in JSX.
* @see https://eslint-react.xyz/docs/rules/jsx-no-undef
*/
'@eslint-react/jsx-no-undef'?: Linter.RuleEntry<[]>
/**
* Marks React variables as used when JSX is used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-react
*/
'@eslint-react/jsx-uses-react'?: Linter.RuleEntry<[]>
/**
* Marks variables used in JSX elements as used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
*/
'@eslint-react/jsx-uses-vars'?: Linter.RuleEntry<[]>
/**
* Enforces naming conventions for components.
* @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
*/
'@eslint-react/naming-convention/component-name'?: Linter.RuleEntry<EslintReactNamingConventionComponentName>
/**
* Enforces context name to be a valid component name with the suffix `Context`.
* @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
*/
'@eslint-react/naming-convention/context-name'?: Linter.RuleEntry<[]>
/**
* Enforces consistent file naming conventions.
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename
*/
'@eslint-react/naming-convention/filename'?: Linter.RuleEntry<EslintReactNamingConventionFilename>
/**
* Enforces consistent file naming conventions.
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
*/
'@eslint-react/naming-convention/filename-extension'?: Linter.RuleEntry<EslintReactNamingConventionFilenameExtension>
/**
* Enforces destructuring and symmetric naming of `useState` hook value and setter.
* @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
*/
'@eslint-react/naming-convention/use-state'?: Linter.RuleEntry<[]>
/**
* Disallow accessing `this.state` inside `setState` calls.
* @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
*/
'@eslint-react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
/**
* Disallow an item's index in the array as its key.
* @see https://eslint-react.xyz/docs/rules/no-array-index-key
*/
'@eslint-react/no-array-index-key'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.count`.
* @see https://eslint-react.xyz/docs/rules/no-children-count
*/
'@eslint-react/no-children-count'?: Linter.RuleEntry<[]>
/**
* Disallow 'Children.forEach'.
* @see https://eslint-react.xyz/docs/rules/no-children-for-each
*/
'@eslint-react/no-children-for-each'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.map`.
* @see https://eslint-react.xyz/docs/rules/no-children-map
*/
'@eslint-react/no-children-map'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.only`.
* @see https://eslint-react.xyz/docs/rules/no-children-only
*/
'@eslint-react/no-children-only'?: Linter.RuleEntry<[]>
/**
* Disallow passing `children` as a prop.
* @see https://eslint-react.xyz/docs/rules/no-children-prop
*/
'@eslint-react/no-children-prop'?: Linter.RuleEntry<[]>
/**
* Disallow `Children.toArray`.
* @see https://eslint-react.xyz/docs/rules/no-children-to-array
*/
'@eslint-react/no-children-to-array'?: Linter.RuleEntry<[]>
/**
* Disallow class components except for error boundaries.
* @see https://eslint-react.xyz/docs/rules/no-class-component
*/
'@eslint-react/no-class-component'?: Linter.RuleEntry<[]>
/**
* Disallow `cloneElement`.
* @see https://eslint-react.xyz/docs/rules/no-clone-element
*/
'@eslint-react/no-clone-element'?: Linter.RuleEntry<[]>
/**
* Prevents comments from being inserted as text nodes.
* @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
*/
'@eslint-react/no-comment-textnodes'?: Linter.RuleEntry<[]>
/**
* Disallow complex conditional rendering in JSX expressions.
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
*/
'@eslint-react/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
/**
* Disallow complex conditional rendering in JSX expressions.
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
*/
'@eslint-react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillMount` with `UNSAFE_componentWillMount`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-mount
*/
'@eslint-react/no-component-will-mount'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillReceiveProps` with `UNSAFE_componentWillReceiveProps`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
*/
'@eslint-react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
/**
* Replace usages of `componentWillUpdate` with `UNSAFE_componentWillUpdate`.
* @see https://eslint-react.xyz/docs/rules/no-component-will-update
*/
'@eslint-react/no-component-will-update'?: Linter.RuleEntry<[]>
/**
* Replace usages of `<Context.Provider>` with `<Context>`.
* @see https://eslint-react.xyz/docs/rules/no-context-provider
*/
'@eslint-react/no-context-provider'?: Linter.RuleEntry<[]>
/**
* Disallow `createRef` in function components.
* @see https://eslint-react.xyz/docs/rules/no-create-ref
*/
'@eslint-react/no-create-ref'?: Linter.RuleEntry<[]>
/**
* Disallow `defaultProps` property in favor of ES6 default parameters.
* @see https://eslint-react.xyz/docs/rules/no-default-props
*/
'@eslint-react/no-default-props'?: Linter.RuleEntry<[]>
/**
* Disallow direct mutation of `this.state`.
* @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
*/
'@eslint-react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate props in JSX elements.
* @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
*/
'@eslint-react/no-duplicate-jsx-props'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate `key` on elements in the same array or a list of `children`.
* @see https://eslint-react.xyz/docs/rules/no-duplicate-key
*/
'@eslint-react/no-duplicate-key'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `forwardRef` with passing `ref` as a prop.
* @see https://eslint-react.xyz/docs/rules/no-forward-ref
*/
'@eslint-react/no-forward-ref'?: Linter.RuleEntry<[]>
/**
* Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects).
* @see https://eslint-react.xyz/docs/rules/no-implicit-key
*/
'@eslint-react/no-implicit-key'?: Linter.RuleEntry<[]>
/**
* Prevents problematic leaked values from being rendered.
* @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
*/
'@eslint-react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
/**
* Enforces that all components have a `displayName` which can be used in devtools.
* @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
*/
'@eslint-react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
/**
* Enforces that all contexts have a `displayName` which can be used in devtools.
* @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
*/
'@eslint-react/no-missing-context-display-name'?: Linter.RuleEntry<[]>
/**
* Disallow missing `key` on items in list rendering.
* @see https://eslint-react.xyz/docs/rules/no-missing-key
*/
'@eslint-react/no-missing-key'?: Linter.RuleEntry<[]>
/**
* Prevents incorrect usage of `captureOwnerStack`.
* @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
*/
'@eslint-react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>
/**
* Disallow nesting component definitions inside other components.
* @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
*/
'@eslint-react/no-nested-component-definitions'?: Linter.RuleEntry<[]>
/**
* Disallow nesting component definitions inside other components.
* @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
*/
'@eslint-react/no-nested-components'?: Linter.RuleEntry<[]>
/**
* Disallow nesting lazy component declarations inside other components.
* @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
*/
'@eslint-react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>
/**
* Disallow `propTypes` in favor of TypeScript or another type-checking solution.
* @see https://eslint-react.xyz/docs/rules/no-prop-types
*/
'@eslint-react/no-prop-types'?: Linter.RuleEntry<[]>
/**
* Disallow `shouldComponentUpdate` when extending `React.PureComponent`.
* @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
*/
'@eslint-react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
/**
* Disallow calling `this.setState` in `componentDidMount` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
*/
'@eslint-react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
/**
* Disallow calling `this.setState` in `componentDidUpdate` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
*/
'@eslint-react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
/**
* Disallows calling `this.setState` in `componentWillUpdate` outside of functions, such as callbacks.
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
*/
'@eslint-react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
/**
* Replaces string refs with callback refs.
* @see https://eslint-react.xyz/docs/rules/no-string-refs
*/
'@eslint-react/no-string-refs'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillMount` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
*/
'@eslint-react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillReceiveProps` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
*/
'@eslint-react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
/**
* Warns the usage of `UNSAFE_componentWillUpdate` in class components.
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
*/
'@eslint-react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
/**
* Prevents non-stable values (i.e. object literals) from being used as a value for `Context.Provider`.
* @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
*/
'@eslint-react/no-unstable-context-value'?: Linter.RuleEntry<[]>
/**
* Prevents using referential-type values as default props in object destructuring.
* @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
*/
'@eslint-react/no-unstable-default-props'?: Linter.RuleEntry<[]>
/**
* Warns unused class component methods and properties.
* @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
*/
'@eslint-react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
/**
* Warns unused class component state.
* @see https://eslint-react.xyz/docs/rules/no-unused-state
*/
'@eslint-react/no-unused-state'?: Linter.RuleEntry<[]>
/**
* Replaces usages of `useContext` with `use`.
* @see https://eslint-react.xyz/docs/rules/no-use-context
*/
'@eslint-react/no-use-context'?: Linter.RuleEntry<[]>
/**
* Disallow useless `forwardRef` calls on components that don't use `ref`s.
* @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
*/
'@eslint-react/no-useless-forward-ref'?: Linter.RuleEntry<[]>
/**
* Disallow useless fragment elements.
* @see https://eslint-react.xyz/docs/rules/no-useless-fragment
*/
'@eslint-react/no-useless-fragment'?: Linter.RuleEntry<EslintReactNoUselessFragment>
/**
* Enforces destructuring assignment for component props and context.
* @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
*/
'@eslint-react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
/**
* Enforces React is imported via a namespace import.
* @see https://eslint-react.xyz/docs/rules/prefer-react-namespace-import
*/
'@eslint-react/prefer-react-namespace-import'?: Linter.RuleEntry<[]>
/**
* Enforces read-only props in components.
* @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
*/
'@eslint-react/prefer-read-only-props'?: Linter.RuleEntry<[]>
/**
* Enforces shorthand syntax for boolean attributes.
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
*/
'@eslint-react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
/**
* Enforces shorthand syntax for fragments.
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
*/
'@eslint-react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
/**
* Marks variables used in JSX elements as used.
* @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
*/
'@eslint-react/use-jsx-vars'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `addEventListener` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
*/
'@eslint-react/web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `setInterval` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
*/
'@eslint-react/web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `ResizeObserver` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
*/
'@eslint-react/web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
/**
* Prevents leaked `setTimeout` in a component or custom Hook.
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
*/
'@eslint-react/web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
/**
* Exhaustive deps rule for useQuery
* @see https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
*/
'@tanstack/query/exhaustive-deps'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference sensitive properties for infinite queries
* @see https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
*/
'@tanstack/query/infinite-query-property-order'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference-sensitive properties in useMutation()
* @see https://tanstack.com/query/latest/docs/eslint/mutation-property-order
*/
'@tanstack/query/mutation-property-order'?: Linter.RuleEntry<[]>
/**
* Disallows rest destructuring in queries
* @see https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring
*/
'@tanstack/query/no-rest-destructuring'?: Linter.RuleEntry<[]>
/**
* Disallow putting the result of query hooks directly in a React hook dependency array
* @see https://tanstack.com/query/latest/docs/eslint/no-unstable-deps
*/
'@tanstack/query/no-unstable-deps'?: Linter.RuleEntry<[]>
/**
* Ensures queryFn returns a non-undefined value
* @see https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
*/
'@tanstack/query/no-void-query-fn'?: Linter.RuleEntry<[]>
/**
* Makes sure that QueryClient is stable
* @see https://tanstack.com/query/latest/docs/eslint/stable-query-client
*/
'@tanstack/query/stable-query-client'?: Linter.RuleEntry<[]>
/**
* Ensure correct order of inference sensitive properties for createRoute functions
* @see https://tanstack.com/router/latest/docs/eslint/create-route-property-order
*/
'@tanstack/router/create-route-property-order'?: Linter.RuleEntry<[]>
/**
* Require that function overload signatures be consecutive
* @see https://typescript-eslint.io/rules/adjacent-overload-signatures
*/
'@typescript-eslint/adjacent-overload-signatures'?: Linter.RuleEntry<[]>
/**
* Require consistently using either `T[]` or `Array<T>` for arrays
* @see https://typescript-eslint.io/rules/array-type
*/
'@typescript-eslint/array-type'?: Linter.RuleEntry<TypescriptEslintArrayType>
/**
* Disallow awaiting a value that is not a Thenable
* @see https://typescript-eslint.io/rules/await-thenable
*/
'@typescript-eslint/await-thenable'?: Linter.RuleEntry<[]>
/**
* Disallow `@ts-<directive>` comments or require descriptions after directives
* @see https://typescript-eslint.io/rules/ban-ts-comment
*/
'@typescript-eslint/ban-ts-comment'?: Linter.RuleEntry<TypescriptEslintBanTsComment>
/**
* Disallow `// tslint:<rule-flag>` comments
* @see https://typescript-eslint.io/rules/ban-tslint-comment
*/
'@typescript-eslint/ban-tslint-comment'?: Linter.RuleEntry<[]>
/**
* Enforce that literals on classes are exposed in a consistent style
* @see https://typescript-eslint.io/rules/class-literal-property-style
*/
'@typescript-eslint/class-literal-property-style'?: Linter.RuleEntry<TypescriptEslintClassLiteralPropertyStyle>
/**
* Enforce that class methods utilize `this`
* @see https://typescript-eslint.io/rules/class-methods-use-this
*/
'@typescript-eslint/class-methods-use-this'?: Linter.RuleEntry<TypescriptEslintClassMethodsUseThis>
/**
* Enforce specifying generic type arguments on type annotation or constructor name of a constructor call
* @see https://typescript-eslint.io/rules/consistent-generic-constructors
*/
'@typescript-eslint/consistent-generic-constructors'?: Linter.RuleEntry<TypescriptEslintConsistentGenericConstructors>
/**
* Require or disallow the `Record` type
* @see https://typescript-eslint.io/rules/consistent-indexed-object-style
*/
'@typescript-eslint/consistent-indexed-object-style'?: Linter.RuleEntry<TypescriptEslintConsistentIndexedObjectStyle>
/**
* Require `return` statements to either always or never specify values
* @see https://typescript-eslint.io/rules/consistent-return
*/
'@typescript-eslint/consistent-return'?: Linter.RuleEntry<TypescriptEslintConsistentReturn>
/**
* Enforce consistent usage of type assertions
* @see https://typescript-eslint.io/rules/consistent-type-assertions
*/
'@typescript-eslint/consistent-type-assertions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeAssertions>
/**
* Enforce type definitions to consistently use either `interface` or `type`
* @see https://typescript-eslint.io/rules/consistent-type-definitions
*/
'@typescript-eslint/consistent-type-definitions'?: Linter.RuleEntry<TypescriptEslintConsistentTypeDefinitions>
/**
* Enforce consistent usage of type exports
* @see https://typescript-eslint.io/rules/consistent-type-exports
*/
'@typescript-eslint/consistent-type-exports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeExports>
/**
* Enforce consistent usage of type imports
* @see https://typescript-eslint.io/rules/consistent-type-imports
*/
'@typescript-eslint/consistent-type-imports'?: Linter.RuleEntry<TypescriptEslintConsistentTypeImports>
/**
* Enforce default parameters to be last
* @see https://typescript-eslint.io/rules/default-param-last
*/
'@typescript-eslint/default-param-last'?: Linter.RuleEntry<[]>
/**
* Enforce dot notation whenever possible
* @see https://typescript-eslint.io/rules/dot-notation
*/
'@typescript-eslint/dot-notation'?: Linter.RuleEntry<TypescriptEslintDotNotation>
/**
* Require explicit return types on functions and class methods
* @see https://typescript-eslint.io/rules/explicit-function-return-type
*/
'@typescript-eslint/explicit-function-return-type'?: Linter.RuleEntry<TypescriptEslintExplicitFunctionReturnType>
/**
* Require explicit accessibility modifiers on class properties and methods
* @see https://typescript-eslint.io/rules/explicit-member-accessibility
*/
'@typescript-eslint/explicit-member-accessibility'?: Linter.RuleEntry<TypescriptEslintExplicitMemberAccessibility>
/**
* Require explicit return and argument types on exported functions' and classes' public class methods
* @see https://typescript-eslint.io/rules/explicit-module-boundary-types
*/
'@typescript-eslint/explicit-module-boundary-types'?: Linter.RuleEntry<TypescriptEslintExplicitModuleBoundaryTypes>
/**
* Require or disallow initialization in variable declarations
* @see https://typescript-eslint.io/rules/init-declarations
*/
'@typescript-eslint/init-declarations'?: Linter.RuleEntry<TypescriptEslintInitDeclarations>
/**
* Enforce a maximum number of parameters in function definitions
* @see https://typescript-eslint.io/rules/max-params
*/
'@typescript-eslint/max-params'?: Linter.RuleEntry<TypescriptEslintMaxParams>
/**
* Require a consistent member declaration order
* @see https://typescript-eslint.io/rules/member-ordering
*/
'@typescript-eslint/member-ordering'?: Linter.RuleEntry<TypescriptEslintMemberOrdering>
/**
* Enforce using a particular method signature syntax
* @see https://typescript-eslint.io/rules/method-signature-style
*/
'@typescript-eslint/method-signature-style'?: Linter.RuleEntry<TypescriptEslintMethodSignatureStyle>
/**
* Enforce naming conventions for everything across a codebase
* @see https://typescript-eslint.io/rules/naming-convention
*/
'@typescript-eslint/naming-convention'?: Linter.RuleEntry<TypescriptEslintNamingConvention>
/**
* Disallow generic `Array` constructors
* @see https://typescript-eslint.io/rules/no-array-constructor
*/
'@typescript-eslint/no-array-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow using the `delete` operator on array values
* @see https://typescript-eslint.io/rules/no-array-delete
*/
'@typescript-eslint/no-array-delete'?: Linter.RuleEntry<[]>
/**
* Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified
* @see https://typescript-eslint.io/rules/no-base-to-string
*/
'@typescript-eslint/no-base-to-string'?: Linter.RuleEntry<TypescriptEslintNoBaseToString>
/**
* Disallow non-null assertion in locations that may be confusing
* @see https://typescript-eslint.io/rules/no-confusing-non-null-assertion
*/
'@typescript-eslint/no-confusing-non-null-assertion'?: Linter.RuleEntry<[]>
/**
* Require expressions of type void to appear in statement position
* @see https://typescript-eslint.io/rules/no-confusing-void-expression
*/
'@typescript-eslint/no-confusing-void-expression'?: Linter.RuleEntry<TypescriptEslintNoConfusingVoidExpression>
/**
* Disallow using code marked as `@deprecated`
* @see https://typescript-eslint.io/rules/no-deprecated
*/
'@typescript-eslint/no-deprecated'?: Linter.RuleEntry<TypescriptEslintNoDeprecated>
/**
* Disallow duplicate class members
* @see https://typescript-eslint.io/rules/no-dupe-class-members
*/
'@typescript-eslint/no-dupe-class-members'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate enum member values
* @see https://typescript-eslint.io/rules/no-duplicate-enum-values
*/
'@typescript-eslint/no-duplicate-enum-values'?: Linter.RuleEntry<[]>
/**
* Disallow duplicate constituents of union or intersection types
* @see https://typescript-eslint.io/rules/no-duplicate-type-constituents
*/
'@typescript-eslint/no-duplicate-type-constituents'?: Linter.RuleEntry<TypescriptEslintNoDuplicateTypeConstituents>
/**
* Disallow using the `delete` operator on computed key expressions
* @see https://typescript-eslint.io/rules/no-dynamic-delete
*/
'@typescript-eslint/no-dynamic-delete'?: Linter.RuleEntry<[]>
/**
* Disallow empty functions
* @see https://typescript-eslint.io/rules/no-empty-function
*/
'@typescript-eslint/no-empty-function'?: Linter.RuleEntry<TypescriptEslintNoEmptyFunction>
/**
* Disallow the declaration of empty interfaces
* @see https://typescript-eslint.io/rules/no-empty-interface
* @deprecated
*/
'@typescript-eslint/no-empty-interface'?: Linter.RuleEntry<TypescriptEslintNoEmptyInterface>
/**
* Disallow accidentally using the "empty object" type
* @see https://typescript-eslint.io/rules/no-empty-object-type
*/
'@typescript-eslint/no-empty-object-type'?: Linter.RuleEntry<TypescriptEslintNoEmptyObjectType>
/**
* Disallow the `any` type
* @see https://typescript-eslint.io/rules/no-explicit-any
*/
'@typescript-eslint/no-explicit-any'?: Linter.RuleEntry<TypescriptEslintNoExplicitAny>
/**
* Disallow extra non-null assertions
* @see https://typescript-eslint.io/rules/no-extra-non-null-assertion
*/
'@typescript-eslint/no-extra-non-null-assertion'?: Linter.RuleEntry<[]>
/**
* Disallow classes used as namespaces
* @see https://typescript-eslint.io/rules/no-extraneous-class
*/
'@typescript-eslint/no-extraneous-class'?: Linter.RuleEntry<TypescriptEslintNoExtraneousClass>
/**
* Require Promise-like statements to be handled appropriately
* @see https://typescript-eslint.io/rules/no-floating-promises
*/
'@typescript-eslint/no-floating-promises'?: Linter.RuleEntry<TypescriptEslintNoFloatingPromises>
/**
* Disallow iterating over an array with a for-in loop
* @see https://typescript-eslint.io/rules/no-for-in-array
*/
'@typescript-eslint/no-for-in-array'?: Linter.RuleEntry<[]>
/**
* Disallow the use of `eval()`-like functions
* @see https://typescript-eslint.io/rules/no-implied-eval
*/
'@typescript-eslint/no-implied-eval'?: Linter.RuleEntry<[]>
/**
* Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers
* @see https://typescript-eslint.io/rules/no-import-type-side-effects
*/
'@typescript-eslint/no-import-type-side-effects'?: Linter.RuleEntry<[]>
/**
* Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean
* @see https://typescript-eslint.io/rules/no-inferrable-types
*/
'@typescript-eslint/no-inferrable-types'?: Linter.RuleEntry<TypescriptEslintNoInferrableTypes>
/**
* Disallow `this` keywords outside of classes or class-like objects
* @see https://typescript-eslint.io/rules/no-invalid-this
*/
'@typescript-eslint/no-invalid-this'?: Linter.RuleEntry<TypescriptEslintNoInvalidThis>
/**
* Disallow `void` type outside of generic or return types
* @see https://typescript-eslint.io/rules/no-invalid-void-type
*/
'@typescript-eslint/no-invalid-void-type'?: Linter.RuleEntry<TypescriptEslintNoInvalidVoidType>
/**
* Disallow function declarations that contain unsafe references inside loop statements
* @see https://typescript-eslint.io/rules/no-loop-func
*/
'@typescript-eslint/no-loop-func'?: Linter.RuleEntry<[]>
/**
* Disallow literal numbers that lose precision
* @see https://typescript-eslint.io/rules/no-loss-of-precision
* @deprecated
*/
'@typescript-eslint/no-loss-of-precision'?: Linter.RuleEntry<[]>
/**
* Disallow magic numbers
* @see https://typescript-eslint.io/rules/no-magic-numbers
*/
'@typescript-eslint/no-magic-numbers'?: Linter.RuleEntry<TypescriptEslintNoMagicNumbers>
/**
* Disallow the `void` operator except when used to discard a value
* @see https://typescript-eslint.io/rules/no-meaningless-void-operator
*/
'@typescript-eslint/no-meaningless-void-operator'?: Linter.RuleEntry<TypescriptEslintNoMeaninglessVoidOperator>
/**
* Enforce valid definition of `new` and `constructor`
* @see https://typescript-eslint.io/rules/no-misused-new
*/
'@typescript-eslint/no-misused-new'?: Linter.RuleEntry<[]>
/**
* Disallow Promises in places not designed to handle them
* @see https://typescript-eslint.io/rules/no-misused-promises
*/
'@typescript-eslint/no-misused-promises'?: Linter.RuleEntry<TypescriptEslintNoMisusedPromises>
/**
* Disallow using the spread operator when it might cause unexpected behavior
* @see https://typescript-eslint.io/rules/no-misused-spread
*/
'@typescript-eslint/no-misused-spread'?: Linter.RuleEntry<TypescriptEslintNoMisusedSpread>
/**
* Disallow enums from having both number and string members
* @see https://typescript-eslint.io/rules/no-mixed-enums
*/
'@typescript-eslint/no-mixed-enums'?: Linter.RuleEntry<[]>
/**
* Disallow TypeScript namespaces
* @see https://typescript-eslint.io/rules/no-namespace
*/
'@typescript-eslint/no-namespace'?: Linter.RuleEntry<TypescriptEslintNoNamespace>
/**
* Disallow non-null assertions in the left operand of a nullish coalescing operator
* @see https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing
*/
'@typescript-eslint/no-non-null-asserted-nullish-coalescing'?: Linter.RuleEntry<[]>
/**
* Disallow non-null assertions after an optional chain expression
* @see https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain
*/
'@typescript-eslint/no-non-null-asserted-optional-chain'?: Linter.RuleEntry<[]>
/**
* Disallow non-null assertions using the `!` postfix operator
* @see https://typescript-eslint.io/rules/no-non-null-assertion
*/
'@typescript-eslint/no-non-null-assertion'?: Linter.RuleEntry<[]>
/**
* Disallow variable redeclaration
* @see https://typescript-eslint.io/rules/no-redeclare
*/
'@typescript-eslint/no-redeclare'?: Linter.RuleEntry<TypescriptEslintNoRedeclare>
/**
* Disallow members of unions and intersections that do nothing or override type information
* @see https://typescript-eslint.io/rules/no-redundant-type-constituents
*/
'@typescript-eslint/no-redundant-type-constituents'?: Linter.RuleEntry<[]>
/**
* Disallow invocation of `require()`
* @see https://typescript-eslint.io/rules/no-require-imports
*/
'@typescript-eslint/no-require-imports'?: Linter.RuleEntry<TypescriptEslintNoRequireImports>
/**
* Disallow specified modules when loaded by `import`
* @see https://typescript-eslint.io/rules/no-restricted-imports
*/
'@typescript-eslint/no-restricted-imports'?: Linter.RuleEntry<TypescriptEslintNoRestrictedImports>
/**
* Disallow certain types
* @see https://typescript-eslint.io/rules/no-restricted-types
*/
'@typescript-eslint/no-restricted-types'?: Linter.RuleEntry<TypescriptEslintNoRestrictedTypes>
/**
* Disallow variable declarations from shadowing variables declared in the outer scope
* @see https://typescript-eslint.io/rules/no-shadow
*/
'@typescript-eslint/no-shadow'?: Linter.RuleEntry<TypescriptEslintNoShadow>
/**
* Disallow aliasing `this`
* @see https://typescript-eslint.io/rules/no-this-alias
*/
'@typescript-eslint/no-this-alias'?: Linter.RuleEntry<TypescriptEslintNoThisAlias>
/**
* Disallow type aliases
* @see https://typescript-eslint.io/rules/no-type-alias
* @deprecated
*/
'@typescript-eslint/no-type-alias'?: Linter.RuleEntry<TypescriptEslintNoTypeAlias>
/**
* Disallow unnecessary equality comparisons against boolean literals
* @see https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare
*/
'@typescript-eslint/no-unnecessary-boolean-literal-compare'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryBooleanLiteralCompare>
/**
* Disallow conditionals where the type is always truthy or always falsy
* @see https://typescript-eslint.io/rules/no-unnecessary-condition
*/
'@typescript-eslint/no-unnecessary-condition'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryCondition>
/**
* Disallow unnecessary assignment of constructor property parameter
* @see https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment
*/
'@typescript-eslint/no-unnecessary-parameter-property-assignment'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary namespace qualifiers
* @see https://typescript-eslint.io/rules/no-unnecessary-qualifier
*/
'@typescript-eslint/no-unnecessary-qualifier'?: Linter.RuleEntry<[]>
/**
* Disallow unnecessary template expressions
* @see https://typescript-eslint.io/rules/no-unnecessary-template-expression
*/
'@typescript-eslint/no-unnecessary-template-expression'?: Linter.RuleEntry<[]>
/**
* Disallow type arguments that are equal to the default
* @see https://typescript-eslint.io/rules/no-unnecessary-type-arguments
*/
'@typescript-eslint/no-unnecessary-type-arguments'?: Linter.RuleEntry<[]>
/**
* Disallow type assertions that do not change the type of an expression
* @see https://typescript-eslint.io/rules/no-unnecessary-type-assertion
*/
'@typescript-eslint/no-unnecessary-type-assertion'?: Linter.RuleEntry<TypescriptEslintNoUnnecessaryTypeAssertion>
/**
* Disallow unnecessary constraints on generic types
* @see https://typescript-eslint.io/rules/no-unnecessary-type-constraint
*/
'@typescript-eslint/no-unnecessary-type-constraint'?: Linter.RuleEntry<[]>
/**
* Disallow conversion idioms when they do not change the type or value of the expression
* @see https://typescript-eslint.io/rules/no-unnecessary-type-conversion
*/
'@typescript-eslint/no-unnecessary-type-conversion'?: Linter.RuleEntry<[]>
/**
* Disallow type parameters that aren't used multiple times
* @see https://typescript-eslint.io/rules/no-unnecessary-type-parameters
*/
'@typescript-eslint/no-unnecessary-type-parameters'?: Linter.RuleEntry<[]>
/**
* Disallow calling a function with a value with type `any`
* @see https://typescript-eslint.io/rules/no-unsafe-argument
*/
'@typescript-eslint/no-unsafe-argument'?: Linter.RuleEntry<[]>
/**
* Disallow assigning a value with type `any` to variables and properties
* @see https://typescript-eslint.io/rules/no-unsafe-assignment
*/
'@typescript-eslint/no-unsafe-assignment'?: Linter.RuleEntry<[]>
/**
* Disallow calling a value with type `any`
* @see https://typescript-eslint.io/rules/no-unsafe-call
*/
'@typescript-eslint/no-unsafe-call'?: Linter.RuleEntry<[]>
/**
* Disallow unsafe declaration merging
* @see https://typescript-eslint.io/rules/no-unsafe-declaration-merging
*/
'@typescript-eslint/no-unsafe-declaration-merging'?: Linter.RuleEntry<[]>
/**
* Disallow comparing an enum value with a non-enum value
* @see https://typescript-eslint.io/rules/no-unsafe-enum-comparison
*/
'@typescript-eslint/no-unsafe-enum-comparison'?: Linter.RuleEntry<[]>
/**
* Disallow using the unsafe built-in Function type
* @see https://typescript-eslint.io/rules/no-unsafe-function-type
*/
'@typescript-eslint/no-unsafe-function-type'?: Linter.RuleEntry<[]>
/**
* Disallow member access on a value with type `any`
* @see https://typescript-eslint.io/rules/no-unsafe-member-access
*/
'@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<[]>
/**
* Disallow returning a value with type `any` from a function
* @see https://typescript-eslint.io/rules/no-unsafe-return
*/
'@typescript-eslint/no-unsafe-return'?: Linter.RuleEntry<[]>
/**
* Disallow type assertions that narrow a type
* @see https://typescript-eslint.io/rules/no-unsafe-type-assertion
*/
'@typescript-eslint/no-unsafe-type-assertion'?: Linter.RuleEntry<[]>
/**
* Require unary negation to take a number
* @see https://typescript-eslint.io/rules/no-unsafe-unary-minus
*/
'@typescript-eslint/no-unsafe-unary-minus'?: Linter.RuleEntry<[]>
/**
* Disallow unused expressions
* @see https://typescript-eslint.io/rules/no-unused-expressions
*/
'@typescript-eslint/no-unused-expressions'?: Linter.RuleEntry<TypescriptEslintNoUnusedExpressions>
/**
* Disallow unused variables
* @see https://typescript-eslint.io/rules/no-unused-vars
*/
'@typescript-eslint/no-unused-vars'?: Linter.RuleEntry<TypescriptEslintNoUnusedVars>
/**
* Disallow the use of variables before they are defined
* @see https://typescript-eslint.io/rules/no-use-before-define
*/
'@typescript-eslint/no-use-before-define'?: Linter.RuleEntry<TypescriptEslintNoUseBeforeDefine>
/**
* Disallow unnecessary constructors
* @see https://typescript-eslint.io/rules/no-useless-constructor
*/
'@typescript-eslint/no-useless-constructor'?: Linter.RuleEntry<[]>
/**
* Disallow empty exports that don't change anything in a module file
* @see https://typescript-eslint.io/rules/no-useless-empty-export
*/
'@typescript-eslint/no-useless-empty-export'?: Linter.RuleEntry<[]>
/**
* Disallow `require` statements except in import statements
* @see https://typescript-eslint.io/rules/no-var-requires
* @deprecated
*/
'@typescript-eslint/no-var-requires'?: Linter.RuleEntry<TypescriptEslintNoVarRequires>
/**
* Disallow using confusing built-in primitive class wrappers
* @see https://typescript-eslint.io/rules/no-wrapper-object-types
*/
'@typescript-eslint/no-wrapper-object-types'?: Linter.RuleEntry<[]>
/**
* Enforce non-null assertions over explicit type assertions
* @see https://typescript-eslint.io/rules/non-nullable-type-assertion-style
*/
'@typescript-eslint/non-nullable-type-assertion-style'?: Linter.RuleEntry<[]>
/**
* Disallow throwing non-`Error` values as exceptions
* @see https://typescript-eslint.io/rules/only-throw-error
*/
'@typescript-eslint/only-throw-error'?: Linter.RuleEntry<TypescriptEslintOnlyThrowError>
/**
* Require or disallow parameter properties in class constructors
* @see https://typescript-eslint.io/rules/parameter-properties
*/
'@typescript-eslint/parameter-properties'?: Linter.RuleEntry<TypescriptEslintParameterProperties>
/**
* Enforce the use of `as const` over literal type
* @see https://typescript-eslint.io/rules/prefer-as-const
*/
'@typescript-eslint/prefer-as-const'?: Linter.RuleEntry<[]>
/**
* Require destructuring from arrays and/or objects
* @see https://typescript-eslint.io/rules/prefer-destructuring
*/
'@typescript-eslint/prefer-destructuring'?: Linter.RuleEntry<TypescriptEslintPreferDestructuring>
/**
* Require each enum member value to be explicitly initialized
* @see https://typescript-eslint.io/rules/prefer-enum-initializers
*/
'@typescript-eslint/prefer-enum-initializers'?: Linter.RuleEntry<[]>
/**
* Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result
* @see https://typescript-eslint.io/rules/prefer-find
*/
'@typescript-eslint/prefer-find'?: Linter.RuleEntry<[]>
/**
* Enforce the use of `for-of` loop over the standard `for` loop where possible
* @see https://typescript-eslint.io/rules/prefer-for-of
*/
'@typescript-eslint/prefer-for-of'?: Linter.RuleEntry<[]>
/**
* Enforce using function types instead of interfaces with call signatures
* @see https://typescript-eslint.io/rules/prefer-function-type
*/
'@typescript-eslint/prefer-function-type'?: Linter.RuleEntry<[]>
/**
* Enforce `includes` method over `indexOf` method
* @see https://typescript-eslint.io/rules/prefer-includes
*/
'@typescript-eslint/prefer-includes'?: Linter.RuleEntry<[]>
/**
* Require all enum members to be literal values
* @see https://typescript-eslint.io/rules/prefer-literal-enum-member
*/
'@typescript-eslint/prefer-literal-enum-member'?: Linter.RuleEntry<TypescriptEslintPreferLiteralEnumMember>
/**
* Require using `namespace` keyword over `module` keyword to declare custom TypeScript modules
* @see https://typescript-eslint.io/rules/prefer-namespace-keyword
*/
'@typescript-eslint/prefer-namespace-keyword'?: Linter.RuleEntry<[]>
/**
* Enforce using the nullish coalescing operator instead of logical assignments or chaining
* @see https://typescript-eslint.io/rules/prefer-nullish-coalescing
*/
'@typescript-eslint/prefer-nullish-coalescing'?: Linter.RuleEntry<TypescriptEslintPreferNullishCoalescing>
/**
* Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects
* @see https://typescript-eslint.io/rules/prefer-optional-chain
*/
'@typescript-eslint/prefer-optional-chain'?: Linter.RuleEntry<TypescriptEslintPreferOptionalChain>
/**
* Require using Error objects as Promise rejection reasons
* @see https://typescript-eslint.io/rules/prefer-promise-reject-errors
*/
'@typescript-eslint/prefer-promise-reject-errors'?: Linter.RuleEntry<TypescriptEslintPreferPromiseRejectErrors>
/**
* Require private members to be marked as `readonly` if they're never modified outside of the constructor
* @see https://typescript-eslint.io/rules/prefer-readonly
*/
'@typescript-eslint/prefer-readonly'?: Linter.RuleEntry<TypescriptEslintPreferReadonly>
/**
* Require function parameters to be typed as `readonly` to prevent accidental mutation of inputs
* @see https://typescript-eslint.io/rules/prefer-readonly-parameter-types
*/
'@typescript-eslint/prefer-readonly-parameter-types'?: Linter.RuleEntry<TypescriptEslintPreferReadonlyParameterTypes>
/**
* Enforce using type parameter when calling `Array#reduce` instead of using a type assertion
* @see https://typescript-eslint.io/rules/prefer-reduce-type-parameter
*/
'@typescript-eslint/prefer-reduce-type-parameter'?: Linter.RuleEntry<[]>
/**
* Enforce `RegExp#exec` over `String#match` if no global flag is provided
* @see https://typescript-eslint.io/rules/prefer-regexp-exec
*/
'@typescript-eslint/prefer-regexp-exec'?: Linter.RuleEntry<[]>
/**
* Enforce that `this` is used when only `this` type is returned
* @see https://typescript-eslint.io/rules/prefer-return-this-type
*/
'@typescript-eslint/prefer