# Migrate TSLint to ESLint
----
## WHY
With Angular 11 release it was announced that the TSlint (deprecated in 2019) linter was to be replaced by ESLint.
----
## WHAT
### Our project
* TSLint
* Codelyzer
* Airbnb style guide rules
----
## HOW
### Angular ESLint
**Step 1 - Add relevant dependencies**
```
ng add @angular-eslint/schematics
```
----
**Step 2 - Run the "convert-tslint-to-eslint" schematic**
```
ng g @angular-eslint/schematics:convert-tslint-to-eslint {{YOUR_PROJECT_NAME_GOES_HERE}}
```
```+ .eslintrc.json```
----
**Step 3 - Remove root TSLint configuration and use only ESLint**
```- .tslint.json```
----
**Step 4 - Customizing ESLint**
- Prettier
- Airbnb
- customized
----
```.eslintrc.json```
```json
{
"overrides": [
{
"files": ["*.ts"],
"extends": [],
"rules": {}
},
{
"files": ["*.html"],
"extends": [],
"rules": {}
}
}
```
----
```json
"extends": [
"plugin:@angular-eslint/recommended",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@angular-eslint/template/process-inline-templates"
],
```
----
### Prettier
```
npm install -D prettier eslint-config-prettier eslint-plugin-prettier
```
```json
"extends": [
"plugin:@angular-eslint/recommended",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@angular-eslint/template/process-inline-templates",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
```
----
### airbnb
```
eslint-config-airbnb-typescript
```
```
npm install eslint-plugin-import@^2.22.0 @typescript-eslint/eslint-plugin@^4.4.1
```
```json
"extends": [
"plugin:@angular-eslint/recommended",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@angular-eslint/template/process-inline-templates",
"airbnb-typescript/base",
"prettier/@typescript-eslint",
"plugin:prettier/recommended"
],
```
{"metaMigratedAt":"2023-06-15T19:23:15.787Z","metaMigratedFrom":"YAML","title":"Talk slides template","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"3650a878-e127-49c0-8ba0-ac2bbee661bf\",\"add\":2444,\"del\":58}]"}