# ESLint
- Designed to lint [[js|JavaScript]] code
- Core Concets
- Rules
- Parsers
- Processors - extracts JS code from other files, and/or process JS code.
## Config
- Flat config system
- [Configuration Files](https://eslint.org/docs/latest/use/configure/configuration-files)
- [ESLint's new config system, Part 2: Introduction to flat config](https://eslint.org/blog/2022/08/new-config-system-part-2/)
- The config is an array of config objects: `defineConfig([...])`.
- "Each
[configuration object](https://eslint.org/docs/latest/use/configure/configuration-files#configuration-objects)
contains all of the information ESLint needs to execute on a set of files."
- When multiple config objects apply to the same file, they are merged and the
later one takes precedence.
## [[ts|TypeScript]] ESLint
- [`typescript-eslint`](https://typescript-eslint.io/)
- Allows ESLint to parse TS code, and provides rules that are type based.
- [Project Service](https://typescript-eslint.io/blog/announcing-typescript-eslint-v8/#project-service)
- A way to enable type linting that is "generally easier to configure and
faster at runtime".