我试图在扩展控制器中引用在基本控制器中创建的typedef,以限制文档的重复。我的最终目标是在基本控制器中声明一些可以与所有扩展控制器共享的常用文档对象。我当前的环境是Node v8.9.1,VS Code作为我的IDE。我的项目运行ES6没有Babel或TypeScript设置。我假设我的用例得到了支持,我只是想知道如何"包含"来自其他文件的文档。我尝试过使用模块,从jsDoc3查看和链接没有太多运气。从本质上讲,这是我尝试的文件布局
base.controller.js
/**
* Get list request
* @typedef ListRequest
* @type {Object}
* @property {ListRequestQuery} query
*/
/**
* Get list request
* @typedef ListRequestQuery
* @type {Object}
* @property {number} pageNumber - Page to start returning from, default is 1
* @property {number} pageSize - Limit number of results to be returned, default is 10
*/
class BaseController {
constructor () {
}
}
// rest of file left out for brevity
如果我尝试在BaseController中使用ListRequest,我可以看到我的属性类型,一切都按预期工作。但是,如果我尝试在扩展文件中使用ListRequest typedef节点只显示类型" any"对于VS Code中的req
extending.controller.js
/// <reference path="base.controller.js" />
const BaseController = require('./base.controller')
/**
* @extends BaseController
*/
class ExtendingController extends BaseController {
constructor () {
super()
}
/**
* Get contact list.
* @param {ListRequest} req
*/
async list (req, res, next) {
// rest of file left out for brevity