Skip to content

Upgrade to typed linting with projectService and recommendedTypeChecked #769

Description

@lee-chase

Context

Identified during review of #619 (feat/ts-support), which establishes the TypeScript foundation for this project.

Target

Next branch (typescript)

Current state

The ESLint config uses the legacy split packages (@typescript-eslint/eslint-plugin + @typescript-eslint/parser) with project: './tsconfig.json' and only recommended rules — meaning we are paying the cost of typed linting without using any type-aware rules.

Target state

Once the JS → TS migration is substantially complete on the next branch:

  1. Replace split packages with the unified typescript-eslint package
  2. Switch project: './tsconfig.json'projectService: true, tsconfigRootDir: import.meta.dirname
  3. Upgrade TS block from recommendedrecommendedTypeChecked to enable type-aware rules (no-floating-promises, no-misused-promises, await-thenable, etc.)
  4. Add tseslint.configs.disableTypeChecked to the JS block for any remaining .js config files

Risks

  • New lint errorsrecommendedTypeChecked will surface violations on existing .tsx files that must be fixed in the same pass
  • allowDefaultProject — any .js files retained in tsconfig.json's include array will need this option to avoid parser errors
  • Cache invalidation — first lint run will bypass the ESLint cache

Dependency

Should be done after the majority of JS files have been converted to TypeScript.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions