如何使用 JSDoc 通过脚本设置来记录 Vue 组件?

How to use JSDoc to document a Vue component with script setup?

我正在使用 TypeScript 构建一个 Vue 库。我想导出组件的文档,就像我导出普通函数一样。

以前我们会这样做:

<script>
/**
 * This is the documentation of my component.
 */
export default {
}
</script>

<template></template>

但现在 script setup:

<script setup lang="ts">
</script>

<template></template>

我们如何记录组件?

对于 <script setup>,您不能在组件导出时使用 JSDoc。

它是一个编译器语法糖,用于导出设置函数,因此您显然不能注释由编译器“生成”的函数。

如果你真的需要 JSDoc,你应该使用常规的 <script>export default defineComponent :)

<script>
import { defineComponent } from 'vue'

/** This is my nice component documentation */
export default defineComponent({
  name: 'MyComponent',
})
</script>

也适用于经典对象定义:

<script>
import { defineComponent } from 'vue'

/** This is my nice component documentation */
export default {
  name: 'MyComponent',
}
</script>

编辑:正如@EstusFlask 在评论中提到的,您可以在 SFC 组件上混合使用 <script setup><script>(参见 docs) 所以你可以使用常规脚本来公开你的 JSDoc。

<script setup>
// component setup. Takes priority over the eventual `setup()` function of the export object in <script>.
</script>

<script>
/** This is my nice component documentation */
export default {
  name: 'MyComponent',
}
</script>