Angular 8プロジェクトがあり、ng lint
を実行しています。
特定のメソッドに関連付けられた@description
デコレータがあるにもかかわらず、TSLintは文句を言い、コードのさまざまな場所で"'@param' is redundant in TypeScript code if it has no description."
と言います。
たとえば、前述のエラーは、メソッドが次のように記述されている場合に表示されます(TypeScript)。
/**
* @description my lovely description
* @param empDetails
*/
getHeaderBasedonEmpDetails(empDetails: EmployeeDetails) {
if (someVar) {
return 'yeah'
} else {
return 'nah'
}
}
package.json:
{
"name": "example-app",
"version": "0.0.0",
"private": true,
"dependencies": {
"@angular/animations": "^8.0.0",
"@angular/cdk": "^8.0.0",
"@angular/common": "^8.0.0",
"@angular/compiler": "^8.0.0",
"@angular/core": "^8.0.0",
"@angular/flex-layout": "^8.0.0-beta.26",
"@angular/forms": "^8.0.0",
"@angular/http": "^7.2.15",
"@angular/language-service": "^8.0.0",
"@angular/material": "^6.3.3",
"@angular/material-moment-adapter": "^6.4.6",
"@angular/platform-browser": "^8.0.0",
"@angular/platform-browser-dynamic": "^8.0.0",
"@angular/router": "^8.0.0",
"common-logger-angular": "^1.0.0",
"hammerjs": "^2.0.8",
"moment": "^2.24.0",
"ng-click-outside": "^4.0.0",
"ng2-pdf-viewer": "^5.2.1",
"ngx-device-detector": "^1.3.5",
"rxjs": "^6.5.2",
"web-animations-js": "^2.3.1",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.800.1",
"@angular-devkit/build-ng-packagr": "~0.800.1",
"@angular/cli": "~8.0.1",
"@angular/compiler-cli": "^8.0.0",
"@compodoc/compodoc": "^1.1.8",
"@types/jasmine": "~3.3.13",
"@types/jasminewd2": "~2.0.6",
"@types/karma-viewport": "^0.4.0",
"@types/node": "~12.0.4",
"codelyzer": "~5.1.0",
"jasmine-core": "^3.4.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.4",
"karma-ie-launcher": "^1.0.0",
"karma-jasmine": "^2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"karma-junit-reporter": "^1.2.0",
"karma-phantomjs-launcher": "^1.0.4",
"karma-viewport": "^1.0.4",
"karma-webdriver-launcher": "^1.0.5",
"lighthouse": "^5.1.0",
"ng-packagr": "^5.2.0",
"promise-polyfill": "^8.1.0",
"protractor": "~5.4.2",
"rimraf": "^2.6.3",
"ts-node": "~8.2.0",
"tsickle": "^0.35.0",
"tslib": "^1.7.1",
"tslint": "~5.17.0",
"typedoc": "^0.14.2",
"TypeScript": "3.4.5"
}
}
tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"module": "commonjs",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
tslint.json(関連(ルート内)):
{
"rulesDirectory": [
"node_modules/codelyzer"
],
"rules": {
"completed-docs": false,
...
}
}
tslint.json(関連(/ src)):
{
"extends": "../tslint.json",
"rules": {
"completed-docs": false,
...
}
}
私が試してみました:
completed-docs
ルールを手動で無効にします。/* tslint:disable:completed-docs */
を追加する@description
デコレータを削除し、コメントとして残す何が間違っているのですか?
empDetails
の後ろに簡単な説明を追加してください
/**
* @description my lovely description
* @param empDetails contain employee details
*/