gpt4 book ai didi

node.js - tslint 方法返回类型文档

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:44 25 4
gpt4 key购买 nike

我有两个带有相同 package.json tsconfig.json 和 tslint.json 文件的 NodeJS 项目(只是副本)。当我在两个项目上调用 tslint 时,我得到了不同的结果。在第一个项目中,一切正常,但在第二个项目中,我遇到了 属性必须存在文档 lint 错误。

tsconfig.json:

{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": false,
"noUnusedLocals": true,
"noUnusedParameters": true,
"suppressImplicitAnyIndexErrors": true,
"target": "ES6",
"moduleResolution": "node",
"removeComments": false,
"sourceMap": false,
"noLib": false,
"declaration": true,
"lib": ["es5", "es6", "scripthost"],
"outDir": "dist",
"rootDir": "./"
},
"include": [
"src/**/*",
"test.ts"
// "test/**/*",
// "bdd/**/*.ts"
]
}

tslint.json:

{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {},
"rules": {
"completed-docs": [
true,
{
"properties": {
"privacies": [
"public",
"protected"
]
},
"methods": {
"privacies": [
"public",
"protected"
]
},
"classes": true,
"functions": true,
"interfaces": true,
"namespaces": true,
"types": true
}
],
"max-line-length": false,
"no-trailing-whitespace": false,
"max-classes-per-file": false,
"array-type": false,
"file-header": true,
"only-arrow-functions": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

package.json:

{


"name": "testProj",
"version": "18.9.0",
"description": "",
"author": {
"name": "Me"
},
"license": "MIT",
"engines": {
"node": ">=4.8"
},
"scripts": {
"lint": "tslint test.ts --project ./tsconfig.json"
},
"dependencies": {
"@types/request": "^2.47.0",
"request": "^2.87.0",
"request-debug": "^0.2.0"
},
"devDependencies": {
"@types/chai": "^4.0.10",
"@types/mocha": "^2.2.44",
"asposestoragecloud": "^1.0.5",
"chai": "^4.1.2",
"cross-env": "^5.1.4",
"cucumber": "^3.0.0",
"del": "^3.0.0",
"gulp": "^4.0.0",
"gulp-cucumber": "0.0.23",
"gulp-typescript": "^4.0.1",
"gulp-util": "^3.0.8",
"mocha": "^4.0.1",
"mocha-cases": "^0.2.1",
"mocha-jenkins-reporter": "^0.4.0",
"mocha-sinon": "^2.0.0",
"sinon": "^4.1.3",
"ts-node": "^4.0.2",
"tslint": "^5.8.0",
"typescript": "^2.7.1"
}
}

测试.ts:

    /**
* Some awesome class
*/
export class MyCheckClass {
/**
* Very usefull method
* @param checkParameter Some unused parameter
*/
public myCheckMethod(checkParameter: string): Promise<{ code: number, data: string }> {
return new Promise((resolve, reject) => {
resolve({code : 200, data: "My Success Data"});
});
}
}

尝试添加@ts-ignore - 没有帮助,尝试使用@typedef 添加返回类型的文档 - 无用。使 linter 不检查此类情况的文档的正确方法是什么,或者至少如何为返回类型创建正确的文档?

PS。在第一个项目中,这种情况不会导致 linter 引发错误 - 一切都一样。但我发现 - 如果我使用全局安装的 tslint (刚刚卸载的 node_modules 文件夹) - 会出现相同的错误,但在 npm install 之后 - 工作正常。

最佳答案

您看到的“文档必须存在”投诉来自 TSLint(而不是 TypeScript)。 // @ts-ignore仅适用于 TypeScript 投诉(不适用于 TSLint),因此对此没有帮助。

相反,您有几个选择:

  • 禁用 completed-docs 统治你的tslint.json文件带有 "completed-docs": false里面"rules"对象( docs )
  • 使用// tslint:disable-next-line:completed-docs (docs)

就上下文而言,TSLint 和 TypeScript 是两个独立的工具。 TypeScript 是将您的 .ts 转换为语言/.tsx文件发送至.js ; TSLint 使用 TypeScript 扫描代码中的问题。

至于为什么您在不同的项目中看到不同的 TSLint 行为,也许您的版本不同? TSLint 5.13 如何改变 completed-docs与 5.12 相比运行。

关于node.js - tslint 方法返回类型文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54926479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com