Javascript 如何在类未定义、仅传递给的模块中获取intellisense?
TL;DR:是否有办法为vscode中模块之间传递的类型/变量启用intellisense 在这个场景中,我有3个模块/文件:Javascript 如何在类未定义、仅传递给的模块中获取intellisense?,javascript,ecmascript-6,visual-studio-code,es6-class,Javascript,Ecmascript 6,Visual Studio Code,Es6 Class,TL;DR:是否有办法为vscode中模块之间传递的类型/变量启用intellisense 在这个场景中,我有3个模块/文件: Test.js // Test.js export default class Test { constructor() { this.whatever = { a: "a", b: "b" }; } someFunc() { console.log(this.whatever.b); } } Oth
Test.js
// Test.js
export default class Test {
constructor() {
this.whatever = {
a: "a",
b: "b"
};
}
someFunc() {
console.log(this.whatever.b);
}
}
OtherTest.js
// OtherTest.js
export default arg => {
arg.someFunc();
};
index.js
//index.js
import Test from "./Test";
import OtherTest from "./OtherTest";
const test = new Test();
OtherTest(test);
运行index.js中的代码时,控制台会按预期打印“b” 使用vscode,如何让编辑器“知道”传递给OtherTest.js中函数的是哪种变量,这样我就可以在intellisense中弹出测试类的所有成员 我想这应该是在vscode中完成的,因为类型化参数是不可能的,但除了TypeScript之外,我不知道,TypeScript不是一个选项。根据: 默认情况下,JavaScript语言服务将分析并为JavaScript项目中的所有文件提供IntelliSense 但是,您可以在
jsconfig.json
中指定要包括或排除的文件
对于您的情况,我已经在VS代码中重新创建了您的项目,在获取OtherTest
type[image]的类型时,“开箱即用”效果良好:
编辑:但我认为问题不在VS代码中,您想知道哪种类型的变量通常会起作用
在这种情况下,您可以查看以下选项:
jsconfig.json
中指定要包括或排除的文件
对于您的情况,我已经在VS代码中重新创建了您的项目,在获取OtherTest
type[image]的类型时,“开箱即用”效果良好:
编辑:但我认为问题不在VS代码中,您想知道哪种类型的变量通常会起作用
在这种情况下,您可以查看以下选项:
哦,是的,在index.js文件中,我从两个导入的文件中都获得了intellisense,但我希望将参数中的intellisense传递到OtherTest.js文件中:例如,我应该能够从OtherTest.js中的arg参数中看到someFunc()方法。抱歉,我已经更新了答案,不要从第一次查找JSdoc中发现问题!这是侵入性最小、最优雅的解决方案。它现在正在工作,只需要引用顶部的类型并在JSDoc中使用它。完美无瑕!谢谢哦,是的,在index.js文件中,我从两个导入的文件中都获得了intellisense,但我希望将参数中的intellisense传递到OtherTest.js文件中:例如,我应该能够从OtherTest.js中的arg参数中看到someFunc()方法。抱歉,我已经更新了答案,不要从第一次查找JSdoc中发现问题!这是侵入性最小、最优雅的解决方案。它现在正在工作,只需要引用顶部的类型并在JSDoc中使用它。完美无瑕!谢谢