如何用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
相关产品推荐
相关产品推荐

