我过去曾使用TSLint来要求文档化诸如接口,枚举之类的东西,以及Javascript中不存在的其他东西:
"completed-docs": [
true,
{
...
"enums": {
"visibilities": ["all"]
},
"enum-members": {
"visibilities": ["all"]
},
"functions": {
"visibilities": ["all"]
},
"interfaces": {
"visibilities": ["all"]
},
"namespaces": {
"visibilities": ["all"]
},
"types": {
"visibilities": ["exported"]
},
"variables": {
"visibilities": ["exported"]
}
鉴于TSLint已过时,我想使用Eslint,但无论如何我都找不到需要Typescript结构的文档...我可以通过此规则要求有关类,方法等的文档:
"jsdoc/require-jsdoc": ["error", {"require": {
"FunctionExpression": true,
"ClassDeclaration": true,
"MethodDefinition": true,
"ArrowFunctionExpression": true,
"ClassExpression": true
}}],
但是该规则不支持要求Typescript结构的文档。用Eslint进行此操作的任何方法(不使用TSLint插件?)
您的问题已解决here,您应该:
将AST类型添加到规则的上下文选项中。
您必须查阅TypeScript AST列表以找到类型或使用支持@ typescript-eslint / parser的AST资源管理器,例如astexplorer.net(也有ts-ast-viewer.com,这就是特定于TS,但未使用@ typescript-eslint / parser使TS接口适应ESLint所需的AST,我们使用)。
因此,例如:
'jsdoc/require-jsdoc': ['error', {contexts: ['TSInterfaceDeclaration', 'TSTypeAliasDeclaration', 'TSEnumDeclaration']}]