Как написать ImportDeclaration и ExportDeclaration в документации ast через jsdo c? - PullRequest
0 голосов
/ 22 апреля 2020

В проекте мы используем синтаксис интерфейса экспорта / импорта, например:

export interface Interfacename {

}

Из-за ошибки «нет принтера для ExportDeclaration» из-за создания документации, мне нужно написать ExportDeclaration.

У меня есть InterfaceDeclaration, написанное кем-то другим. Вот оно:

const ts = require('typescript');

module.exports = ((node: TSTypings.InterfaceDeclaration,
               tokens: x.artifacts.astDocs.ITokens,
               rootPath: string): string => {

const type = <string>node.name.escapedText;
const properties = node.members.filter((member: TSTypings.TypeElement) =>
    [ts.SyntaxKind.PropertySignature, ts.SyntaxKind.PropertyDeclaration].indexOf(member.kind) !== -1)
    .sort(sortProps);
const methods = node.members.filter((member: TSTypings.TypeElement) =>
    [ts.SyntaxKind.MethodSignature, ts.SyntaxKind.MethodDeclaration].indexOf(member.kind) !== -1)
    .sort(sortProps);
const signature = node.members
    .filter((member: TSTypings.TypeElement) => [ts.SyntaxKind.IndexSignature].indexOf(member.kind) !== -1)
    .sort(sortProps);
const template = signature.length ? TEMPLATE_INTERFACE_SIGNATURE : TEMPLATE_INTERFACE;

logInfo('%s  \x1b[33mPRINTER ClassDeclaration %d %s %s\x1b[0m', SPEEDY, node.kind, type, rootPath);

return print(template, {
    type,
    parent_type_path: rootPath.length > 1 ? `module:${rootPath}` : '',
    description: tokens.types[type].desc,
    properties: plot(properties, tokens, rootPath).join('\r'),
    additionals: extractAdditionals(node),
    methods: plot(methods, tokens, rootPath).join('\r'),
    ismemberof: rootPath.split('.')[0] ? '@memberOf' : '',
    signature: signature.length
        ? plotType(signature, tokens).map(plotPrintableArray.bind(this, tokens)).join(' | ')
        : ''
});

Я бы хотел взять образец из этой декларации выше, но я не знаю, какой персонал должен быть напечатан в конце. Каковы эти свойства и как получить хороший для моей проблемы?

...