JSDo c Объявления Typescript: Как я могу скрыть «частные» методы - PullRequest
3 голосов
/ 27 января 2020

Допустим, у меня есть JavaScript класс

/**
 * @element my-element
 */
export class MyElement extends HTMLElement {
  publicMethod() {}
  /** @private */
  privateMethod() {}
}

customElements.define('my-element', MyElement);

и файл объявления, сгенерированный с использованием declaration и allowJs:

export class MyElement extends HTMLElement {
  publicMethod(): void;
  /** @private */
  privateMethod(): void
}

Я также в сценарий после сборки, соедините его с файлом декларации:

declare global { interface HTMLElementTagNameMap { 'my-element': MyElement; } }

При использовании этого элемента в файле машинописного текста я получаю доступ к privateMethod при автозаполнении.

import 'my-element'
const me = document.createElement("my-element")
me.// autocompletes `privateMethod`

Как могу ли я указать tsc помечать как приватные любые методы, поля или свойства, помеченные тегом @private JSDo c?

1 Ответ

0 голосов
/ 27 января 2020

Вам необходимо использовать аннотацию @ignore для тех методов и классов, которые вы будете sh исключать из документирования.

Тег @ignore указывает, что символ в вашем коде никогда не должен появляться в документация.

/**
 * @class
 * @ignore
 */
function Jacket() {
    /** The jacket's color. */
    this.color = null;
}

/**
 * @namespace
 * @ignore
 */
var Clothes = {
    /**
     * @class
     * @ignore
     */
    Jacket: function() {
        /** The jacket's color. */
        this.color = null;
    }
};

Подробнее об этом здесь: https://jsdoc.app/tags-ignore.html

...