Basically a couple things change:
tsconfig.base.json gets some new rules:
"compilerOptions": {
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true
},
"angularCompilerOptions": {
"strictInjectionParameters": true,
"strictTemplates": true
}
- the
tslint.json gets updated
"no-any": true
- the bundle budget sizes are reduced in your
angular.json:
"configurations": {
//...
[envName]: {
"budgets": [
{
"type": "initial",
"maximumWarning": "500kb",
"maximumError": "1mb",
},
{
"type": "anyComponentStyle",
"maximumWarning": "2kb",
"maximumError": "4kb",
},
]
}
}
and a schematics addition to your projects.[projectName].schematics path in the angular.json:
schematics: {
"@schematics/angular:application": {
"strict": true
}
}
- the app
package.json gets updated with a sideEffects property:
sideEffects: false
For an explanation what this does, I can refer you to this answer.
This package.json is located inside your app folder. It should be added there with the migration while using the ng update option. If you do not have this file, you can use this template
To convert a current codebase, especially the tsconfig updates and the no-any will give you some headache to fix. But it will be definitely worth it to get a better (less hidden bugs) and easier to refactor codebase.