You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JSDoc描述定义了Pinia Store的变量?

用JSDoc标注Pinia Store变量的类型

要给alertsStore变量加上清晰的JSDoc类型注释,分两步来操作:

1. 在Store文件中定义完整的Store类型

先在@/stores/alerts.js里用JSDoc的@typedef定义好Store的结构,包括state和actions的类型,最后合并成一个完整的AlertsStore类型,再给useAlertsStore的返回值标注类型:

import { defineStore } from 'pinia'

/**
 * 定义Store的State结构
 * @typedef {Object} AlertsState
 * @property {Array<{message: string, type: string}>} alerts - 存储提示消息的数组
 */

/**
 * 定义Store的Actions方法
 * @typedef {Object} AlertsActions
 * @property {(message: string) => void} addAlert - 添加提示消息的方法
 */

/**
 * 合并State和Actions,得到完整的Store类型
 * @typedef {AlertsState & AlertsActions} AlertsStore
 */

export const useAlertsStore = defineStore('alerts', {
  state: () => ({
    alerts: []
  }),
  actions: {
    addAlert(message) {
      this.alerts.push({ message, type: 'info' })
    }
  }
})

/**
 * 标注useAlertsStore的返回值类型
 * @returns {AlertsStore}
 */
export default useAlertsStore

2. 在组件中引用这个类型

在@/views/myComponent.vue里,直接通过import的方式引用Store文件里定义好的AlertsStore类型即可:

import { useAlertsStore } from '@/stores/alerts'
...

/**
 * @type {import('@/stores/alerts').AlertsStore}
 */
const alertsStore = useAlertsStore()
...

alertsStore.addAlert('这是一条提示');
...

这样处理后,编辑器就能识别alertsStore的完整类型,提供准确的代码提示和类型检查。

内容的提问来源于stack exchange,提问作者DZN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:10:10