I was in the same boat. I don’t know what your previous version of tslint was, but, for me, I upgraded from 3.15.1 to 4.0.2 and my resulting “broken rule” list is different than yours. Still, I can offer you a few fixes/explanations to the ones you and I had in common.
I just went to the tslint’s changelog on GitHub, found the rule that was broken, got the issue number at the end of the line, & looked up the issue. Easiest way to navigate was to add the issue number to the end of their GitHub issue URL. For example, label-undefined was http//github.com/palantir/tslint/issues/877
Here’s the ones I had to figure out
- label-undefined -> typescript compiler handles this now, so remove
"label-undefined": true
from tslint.json and then add"allowUnusedLabels": false
to the compilerOptions section of your tsconfig.json - no-constructor-vars -> renamed the rule, so change
"no-constructor-vars"
to"no-parameter-properties"
in your tslint.json - no-duplicate-key -> remove
"no-duplicate-key": true
altogether b/c typescript now handles it (won’t compile if dup keys). - no-unreachable -> typescript compiler handles this now, so remove
"no-unreachable": true
from tslint.json and then add"noImplicitReturns": true
to the compilerOptions section of your tsconfig.json - use-strict -> remove
"use-strict"
rule altogether b/c typescript now parses all module bodies in strict mode.