JSDoc Typescript声明:如何隐藏“私有”方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSDoc Typescript声明:如何隐藏“私有”方法相关的知识,希望对你有一定的参考价值。

假设我有一个javascript

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

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

以及使用declarationallowJs生成的声明文件:

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 JSDoc标记注释的任何方法,字段或属性标记为私有?

答案

您需要对要从文档中排除的那些方法和类使用@ignore批注。

@ 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

以上是关于JSDoc Typescript声明:如何隐藏“私有”方法的主要内容,如果未能解决你的问题,请参考以下文章

在 TypeScript 和/或 JSDoc 中,如何指示记录类型中的某些属性名称是同一类型中兄弟属性的别名?

用于接口属性的 TypeScript jsdoc

[TypeScript] Type check JavaScript files using JSDoc and Typescript 2.5

TypeScript JSDoc 风格的类型是不是具有常规类型的全部功能?

如何使用 JSDoc 记录符号索引签名以符合打字稿?

WebStorm JSDoc 类声明,用于使用 node.js 模块完成代码