[英]Update TSLint Errors : Could not find implementations for the following rules specified in the configuration
I upgraded my tslint to 4.0.2 and now I get a lot of errors like the following 我将我的tslint升级到4.0.2,现在我收到了很多错误,如下所示
Could not find implementations for the following rules specified in the configuration:
directive-selector-name
component-selector-name
directive-selector-type
component-selector-type
directive-selector-prefix
component-selector-prefix
label-undefined
no-constructor-vars
no-duplicate-key
no-unreachable
use-strict
I believe the issue may be that my tslint.json may be out of date and I need to update it, but I have not found any information on how to do that or even if my assumption is correct. 我相信问题可能是我的tslint.json可能已经过时了,我需要更新它,但我没有找到任何关于如何做到这一点的信息,或者即使我的假设是正确的。
tslint.json tslint.json
{
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": {
"directive-selector-name": [true, "camelCase"],
"component-selector-name": [true, "kebab-case"],
"directive-selector-type": [true, "attribute"],
"component-selector-type": [true, "element"],
"directive-selector-prefix": [true, "my"],
"component-selector-prefix": [true, "my"],
"use-input-property-decorator": true,
"use-output-property-decorator": true,
"use-host-property-decorator": true,
"no-attribute-parameter-decorator": true,
"no-input-rename": true,
"no-output-rename": true,
"no-forward-ref" :true,
"use-life-cycle-interface": true,
"use-pipe-transform-interface": true,
"pipe-naming": [true, "camelCase", "my"],
"component-class-suffix": true,
"directive-class-suffix": true,
"ban": [true,
["_", "extend"],
["_", "isNull"],
["_", "isDefined"]
],
"class-name": true,
"comment-format": [false,
"check-space",
"check-lowercase"
],
"curly": true,
"eofline": true,
"forin": true,
"indent": [true, 2],
"interface-name": true,
"jsdoc-format": true,
"label-position": true,
"label-undefined": true,
"max-line-length": [false, 140],
"member-ordering": [true,
"public-before-private",
"static-before-instance",
"variables-before-functions"
],
"no-arg": true,
"no-bitwise": true,
"no-console": [true,
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"no-construct": true,
"no-constructor-vars": false,
"no-debugger": true,
"no-duplicate-key": true,
"no-duplicate-variable": true,
"no-empty": true,
"no-eval": true,
"no-string-literal": true,
"no-switch-case-fall-through": true,
"trailing-comma": true,
"no-trailing-whitespace": true,
"no-unused-expression": true,
"no-unused-variable": true,
"no-unreachable": true,
"no-use-before-declare": true,
"no-var-requires": true,
"one-line": [true,
"check-open-brace",
"check-catch",
"check-else",
"check-whitespace"
],
"quotemark": [true, "single"],
"radix": true,
"semicolon": true,
"triple-equals": [true, "allow-null-check"],
"typedef": [true,
"callSignature",
"indexSignature",
"parameter",
"propertySignature",
"variableDeclarator"
],
"typedef-whitespace": [true,
["callSignature", "noSpace"],
["catchClause", "noSpace"],
["indexSignature", "space"]
],
"use-strict": false,
"variable-name": false,
"whitespace": [true,
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type"
]
}
}
packages.json packages.json
{
"dependencies": {
"@angular/common": "^2.2.4",
"@angular/compiler": "^2.2.4",
"@angular/core": "^2.2.4",
"@angular/forms": "^2.2.4",
"@angular/http": "^2.2.4",
"@angular/platform-browser": "^2.2.4",
"@angular/platform-browser-dynamic": "^2.2.4",
"@angular/router": "^3.2.4",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.14",
"ag-grid": "^7.0.0",
"angularfire2": "^2.0.0-beta.5",
"core-js": "^2.4.1",
"firebase": "^3.6.2",
"rxjs": "5.0.0-rc.4",
"zone.js": "^0.7.2"
},
"devDependencies": {
"del": "^2.0.2",
"gulp": "gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
"gulp-hub": "frankwallis/gulp-hub#d461b9c700df9010d0a8694e4af1fb96d9f38bf4",
"gulp-filter": "^4.0.0",
"gulp-util": "^3.0.7",
"gulp-sass": "^2.1.1",
"browser-sync": "^2.18.2",
"browser-sync-spa": "^1.0.3",
"karma": "^1.3.0",
"karma-coverage": "^1.1.1",
"karma-jasmine": "^1.0.2",
"karma-junit-reporter": "^1.1.0",
"jasmine": "^2.4.1",
"es6-shim": "^0.35.0",
"karma-chrome-launcher": "^2.0.0",
"babel-plugin-istanbul": "^3.0.0",
"karma-webpack": "^1.7.0",
"webpack": "2.1.0-beta.20",
"html-webpack-plugin": "^2.24.1",
"style-loader": "^0.13.0",
"css-loader": "^0.26.0",
"postcss-loader": "^1.1.1",
"autoprefixer": "^6.5.3",
"json-loader": "^0.5.4",
"extract-text-webpack-plugin": "^2.0.0-beta.3",
"html-loader": "^0.4.3",
"ts-loader": "^1.2.2",
"sass-loader": "^4.0.2",
"node-sass": "^3.13.0",
"eslint": "^3.11.1",
"eslint-config-xo-space": "^0.15.0",
"eslint-loader": "^1.6.1",
"babel-loader": "^6.2.8",
"babel-eslint": "^7.1.1",
"eslint-plugin-babel": "^4.0.0",
"tslint": "^4.0.2",
"typescript": "^2.0.10",
"typings": "^2.0.0",
"tslint-loader": "^3.2.1",
"codelyzer": "^2.0.0-beta.1"
},
"scripts": {
"build": "gulp",
"serve": "gulp serve",
"serve:dist": "gulp serve:dist",
"test": "gulp test",
"test:auto": "gulp test:auto"
},
"eslintConfig": {
"root": true,
"env": {
"browser": true,
"jasmine": true
},
"extends": [
"xo-space/esnext"
]
}
}
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.
我不知道你以前的tslint版本是什么,但是,对我来说,我从3.15.1升级到了4.0.2,我生成的“破碎规则”列表与你的不同。 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. 我刚刚在GitHub上找到了tslint的更改日志 ,发现了破坏的规则,在行尾收到了问题编号,并查找了问题。 Easiest way to navigate was to add the issue number to the end of their GitHub issue URL.
最简单的导航方法是将问题编号添加到GitHub问题URL的末尾。 For example, label-undefined was http//github.com/palantir/tslint/issues/877
例如, label-undefined是http // github.com / palantir / tslint / issues / 877
Here's the ones I had to figure out 这是我必须弄清楚的
"label-undefined": true
from tslint.json and then add "allowUnusedLabels": false
to the compilerOptions section of your tsconfig.json "label-undefined": true
然后将"allowUnusedLabels": false
添加到"allowUnusedLabels": false
的compilerOptions部分 "no-constructor-vars"
to "no-parameter-properties"
in your tslint.json "no-constructor-vars"
更改为"no-parameter-properties"
"no-duplicate-key": true
altogether b/c typescript now handles it (won't compile if dup keys). "no-duplicate-key": true
完全为"no-duplicate-key": true
b / c typescript现在处理它(如果是双键则不会编译)。 "no-unreachable": true
from tslint.json and then add "noImplicitReturns": true
to the compilerOptions section of your tsconfig.json "no-unreachable": true
然后在"noImplicitReturns": true
的compilerOptions部分添加"noImplicitReturns": true
"use-strict"
rule altogether b/c typescript now parses all module bodies in strict mode. "use-strict"
规则b / c typescript现在以严格模式解析所有模块体。 As of, codelyzer 2.0.0-beta.1 there are some breaking changes. 截至,codelyzer 2.0.0-beta.1有一些重大变化。 They removed directive-selector-name, component-selector-name, directive-selector-type, component-selector-type, directive-selector-prefix and component-selector-prefix are no longer supported.
他们删除了不再支持的directive-selector-name,component-selector-name,directive-selector-type,component-selector-type,directive-selector-prefix和component-selector-prefix。 Instead, they added the below rule:
相反,他们添加了以下规则:
"directive-selector": [true, "attribute", "app", "camelCase"],
"component-selector": [true, "element", "app", "kebab-case"],
Please look at the changelog for the codelyzer and search for any rule that is not supported 请查看codelyzer的更改日志并搜索不受支持的任何规则
tslint v4 removed a bunch of rules that no longer made sense and TypeScript checking got better. tslint v4删除了一堆不再有意义的规则,TypeScript检查变得更好。 You need to use tslint v3 if you still want to use those rules.
如果您仍想使用这些规则,则需要使用tslint v3。
I had the same problem after copying the rules from an angular project. 从角度项目复制规则后,我遇到了同样的问题。 Just create a new empty typescript project and you will be fine.
只需创建一个新的空打字稿项目,你就可以了。
I had this same issue with Could not find implementations for the following rules...
warnings showing up in my IDE, WebStorm 2016.x. 我遇到了同样的问题,
Could not find implementations for the following rules...
警告出现在我的IDE,WebStorm 2016.x中。 In my case, the rule implementations were provided by the IDE, because upgrading my WebStorm fixed the issue. 就我而言,规则实现是由IDE提供的,因为升级我的WebStorm解决了这个问题。
I upgraded Typescript, TSLint & Codelyzer to no avail. 我升级了Typescript,TSLint和Codelyzer无济于事。 I inspected the contents of my tslint.json file and found nothing.
我检查了tslint.json文件的内容,什么也没找到。 Upgrading WebStorm fixed the issue.
升级WebStorm解决了这个问题。
I had the same issue after upgrading an Angular project. 升级Angular项目后我遇到了同样的问题。 Removing this rule resolved the issue for me:
删除此规则为我解决了这个问题:
"no-misused-new"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.