【发布时间】:2022-09-30 00:46:36
【问题描述】:
我正在尝试将自定义函数类型记录为对象的一部分,我们将不胜感激任何帮助:
问题的背景
这是一个简单的对象声明,其中包含一些函数属性(addCoordinate、addCoordinateOne、addCoordinateTwo),我们将通过 3 个展示来讨论它们,以及为什么这些都不起作用。
/**
* @typedef {Object} Point
* @property {number} x - The X Coordinate
* @property {number} y - The Y Coordinate
*/
/**
* @typedef {Object} Shape
* @property {Point} startCoordinate - the starting coordinate
* @property {Point[]} coordinates - An array of point coordinates
* @property {(x:string, y:string) => void} addCoordinate - Updates the point
* @property {addCoordinateOne} addCoordinateOne - Updates the point
* @property {addCoordinateTwo} addCoordinateTwo - Updates the point
*/
/** @type {Shape} */
const square = {}
展品 A
@property {(x:string, y:string) => void} addCoordinate - Updates the point
这完全有效,但不能像我需要的那样可重复使用。
展品 B
/**
* @typedef {Function} addCoordinateOne
* @param {string} X
* @param {string} Y
*/
这个有点有效,因为它检测到自定义函数类型。但它不能正确解析参数。我确保遵循@typedef 标签的文档:
https://jsdoc.app/tags-typedef.html
展品 C
/**
* @function addCoordinateTwo
* @param {string} X
* @param {string} Y
*/
这完全失败了。尽管是 JSDoc 的 @function 文档推荐的方法。
https://jsdoc.app/tags-function.html
问题
有什么办法可以让 Exhibit B 或 C 像 Exhibit A 一样工作?
标签: javascript typescript visual-studio-code jsdoc