jsdoc @ 代码块内的字符

Posted

技术标签:

【中文标题】jsdoc @ 代码块内的字符【英文标题】:jsdoc @ character inside code block 【发布时间】:2018-08-29 20:10:15 【问题描述】:

我正在尝试为这样的模块函数编写文档:

/**
 * Usage:
 *
 * ```
 * @NgModule(
 *      imports: [
 *          BrowserModule,
 *          ...,
 *          ThisModule.forRoot(
 *              name: 'Name',
 *              version: '1.0',
 *      ],
 * ),
 * ```
 * 
 * @param config Service configuration parameters
 */
public static forRoot(config: SVConfig) 

问题在于@NgModule。我试过了:

* ```
* @NgModule

似乎 html 实体在代码 (```) 外部运行良好,但在代码块内部却不行(它会做一些奇怪的事情,比如将 NgModule 加粗和换行)

还尝试了\@@literal @\u0064@@,但均未成功。 我发现的最友好的是(@)NgModule

有什么建议吗?

【问题讨论】:

这是asked 5 years ago 没有答案,也是compodoc 中的一个突出问题 【参考方案1】:

遗憾的是,@example 块内的 jsDoc 不支持特殊符号。它们只能在内联代码块中工作,比如这个:

```js
@Module
```

这将产生正确的@Module 输出。

@example 不同,您不能在所有内容之后放置内联代码块,因为它是内联的,这意味着它将位于您的@returns 部分之前的某个位置。尴尬,我知道。

当您想在代码示例中使用多行注释等内容时也是如此。

```js
a.setParams(/* parameters here */);
```

输出:a.setParams(/* parameters here */);

【讨论】:

【参考方案2】:

我很幸运在 unicode 空间中使用了另一个 @ 符号:U+FF20 (@)。它使文档看起来正确,但不幸的是,如果有人复制/粘贴代码块,它将无法工作。至少从 2012 年开始,这似乎是一个悬而未决的问题,所以我不会屏住呼吸寻求更好的解决方案。

【讨论】:

唯一的解决办法,应该是公认的答案

以上是关于jsdoc @ 代码块内的字符的主要内容,如果未能解决你的问题,请参考以下文章

java中代码发生异常后 程序会怎么执行?

剃刀块内的asp.net mvc 4 javascript抛出错误

R语言使用Repeat函数多次执行代码块内的语句,实现循环执行任务的功能:repeat没有提供任何检查条件,所以编码者必须给出退出重复循环的条件(一般使用if和break)

java中的初始化顺序,静态块内的构造函数

工作总结 错误 using 块缺少结束字符“}”。请确保此块内的所有“{”都有匹配的“}”字符,并且任何“}”都不会解释为标记。

描述块内的 jest.setTimeOut() 是不是仅将超时应用于描述块内的测试