如何使用JavaScript和CommonJS从VSCode中的另一个文件引用未导出的类型(如MyClass
)?
我尝试将@module
用作dictated by JSDoc,但它不起作用。 VSCode不支持这个吗?
我们说我有两个文件:
myFactory.js :
/**
* @module MyModule
*/
class MyClass {}
const myFactory = {
create() {
return new MyClass();
}
}
module.exports = myFactory;
doSomething.js :
const myFactory = require('./myFactory');
/**
* @param {MyClass} item
*/
function doSomething1(item) {}
/**
* @param {MyModule.MyClass} item
*/
function doSomething2(item) {}
/**
* @param {module:MyModule.MyClass} item
*/
function doSomething3(item) {}
在doSomething.js
中,VSCode的Intellisence不知道MyClass
所以所有3个函数签名都是这样的:
(local function) doSomethingX(item: any): void
而不是
(local function) doSomethingX(item: MyClass): void
这是我的jsconfig.json
:
{
"compilerOptions": {
"target": "es2017"
}
}
答案 0 :(得分:0)
尝试将 MyClass 移动到单独的文件中,并为所有文件设置相同的 @namespace :
<强> MyClass.js:强>
/** @namespace MyNamespace */
/** This is my class */
class MyClass {}
<强> myFactory.js:强>
/** @namespace MyNamespace */
const myFactory = require('./MyClass');
const myFactory = {
create() {
return new MyClass();
}
}
module.exports = myFactory
<强> doSomething.js:强>
/** @namespace MyNamespace */
const myFactory = require('./myFactory');
/** @param {MyClass} item */
function doSomething1(item) {}