我们在一个组件中有一个很大的状态,代码类似于
export default {
someObject: {},
someOtherObject: {},
evenMore: []
<etc...>
}
没有任何类型,很难弄清发生了什么。我们目前无法使用Typescript。有没有惯用的方式使用例如JSDoc的文件类型?有点像
export default {
/** @var SomeClass */
someObject: {},
/** @var SomeOtherClass
someOtherObject: {},
/** String[] */
evenMore: []
<etc...>
}
或者那会太吵吗? Vue的标准做法是什么?
编辑:这是一个示例:https://www.npmjs.com/package/jsdoc-vuex-plugin#the-state
/** * The Vuex 'state' object. * @name State * @type {object} * @property {boolean} boolProp This property is a boolean. * @property {string} strProp This property is a string. * @property {number} numProp This property is a number. */
或多或少取决于您所使用的IDE。我正在使用VSCode,它对类型非常了解,在某些情况下,我只需要做出明确的jsdoc注释即可。
因此具有导出默认值,而不是像导出对象一样:
export default {
/** @var SomeClass */
someObject: {},
/** @var SomeOtherClass
someOtherObject: {},
/** String[] */
evenMore: []
<etc...>
}
您需要做:
const export_me = {
/** @var SomeClass */
someObject: {},
/** @var SomeOtherClass
someOtherObject: {},
/** String[] */
evenMore: []
}
export default export_me
并且对于函数,如果您不打算在参数中对其进行销毁,则需要执行类似的操作
/**
@typedef {{
name: string,
age: number
}} Person
@param {Person} person
@param {number} speed
@returns {number}
*/
export function runningMan (person, speed) {
const {
name,
age
} = person;
}
我不使用@property
,因为它在vscode中不起作用。