javascript - JSDoc Type 属性作为函数参数无效
问题描述
我正在开发一个 javascript 项目(使用 VSCode),我们使用JSDoc
eslint 规则valid-jsdoc
。我有一个具有一些属性的对象类型,例如:
/**
* @typedef {Object} Project
* @property {string} id
* @property {string} name
*/
在代码中,我可以使用Project['id']
ex 类型:
/**
* @param {Project['id']} projectId
*/
function myFunction(projectId) {}
它识别类型Project['id']
并string
在我将其悬停时指示它。
我想强迫人们写JSDoc,所以我想使用eslint规则valid-jsdoc
。但是,该规则不知道类型Project['id']
并突出显示带有错误的 jsdoc
JSDoc syntax error
如果我使用它不会显示任何错误
/**
* @param {Project} project
*/
function myFunction(project) {}
或者
/**
* @param {string} projectId
*/
function myFunction(projectId) {}
我认为因为这个规则而不能使用Project['id']
和使用是很遗憾string
的,它不太明确,有时(对于更复杂的对象)可能会很麻烦。
有没有办法实现我想要做的事情?
解决方案
尝试这个
/**
* @typedef {Object} Project - A new project
* @property {String} id - The Project id
* @property {String} name - The Project name
*/
您现在可以使用它,如下所示
/**
* @param {Project} project
*/
function myFunction(project) {
var id = project.id // hover over this
}