Description
Before You File a Documentation Request Please Confirm You Have Done The Following...
- I have looked for existing open or closed documentation requests that match my proposal.
- I have read the FAQ and my problem is not listed.
Suggested Changes
As part of writing #6515, I wrote up some docs on using parserOptions.project = true
(#6084). That feature isn't actually part of v6 - it's just something I'd wanted to get in before or in v6.
Since it's already landed in v5, let's add a blog post explaining it! It'll be good visibility for the enhancement.
Here's what I originally drafted...
Feature: Relative tsconfig.json
Projects
In typescript-eslint v5, in order to enable typed linting, your ESLint configuration must include a parserOptions.project
property indicating which TSConfig(s) to use:
module.exports = {
// ...
parserOptions: {
project: ['./tsconfig.json'],
},
// ...
};
This works well for repositories that have a single TSConfig for all files, such as small repositories using a single tsconfig.json
or larger monorepos that have a tsconfig.eslint.json
specifically used for linting.
But what if your project uses different TSConfig options for different TypeScript files in nested subdirectories?
Specifying the right array of relative TSConfig paths to try for each file in order can be cumbersome or downright impossible.
We recently added the option to specify parserOptions.project
as just true
in ESLint configurations.
This indicates to typescript-eslint that each file should be linted with the closest tsconfig.json
file on disk.
module.exports = {
// ...
parserOptions: {
project: true,
},
// ...
};
We hope using project = true
simplifies configurations for repositories with nontrivial ESLint configuration setups.
We intend to add additional options around automatic TSConfig lookups to allow additional file names or other convenient behaviors.
Affected URL(s)
https://typescript-eslint.io/blog/relative-parser-options-projects perhaps? Something like that?