Требовать документацию для интерфейсов Typescript, перечислений, пространств имен и т. Д. - PullRequest
0 голосов
/ 20 марта 2020

В прошлом я использовал 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 ... Мне может потребоваться документация по классам, методам и т. Д. c с помощью этого правила:

"jsdoc/require-jsdoc": ["error", {"require": {
      "FunctionExpression": true,
      "ClassDeclaration": true,
      "MethodDefinition": true,
      "ArrowFunctionExpression": true,
      "ClassExpression": true
    }}],

Но в это правило требует документации для структур Typescript. Любой способ сделать это с Eslint (без использования плагина TSLint?)

1 Ответ

0 голосов
/ 23 марта 2020

Ваша проблема решена здесь , вам необходимо:

Добавить тип AST к опции контекстов в правиле.

Вам придется обратитесь к списку TypeScript AST, чтобы найти типы, или используйте проводник AST, поддерживающий @typecript-eslint / parser, например astexplorer. net (есть также ts-ast-viewer.com, и это спецификация TS c, но он не использует @ typescript-eslint / parser, который адаптирует интерфейсы TS в AST, необходимый ESLint и который мы используем).

Так, например:

'jsdoc/require-jsdoc': ['error', {contexts: ['TSInterfaceDeclaration', 'TSTypeAliasDeclaration', 'TSEnumDeclaration']}]
...