如何在 class 未定义,仅传递给的模块中获取智能感知?
How to get intellisense in a module where the class is not defined, only passed to?
TL;DR:有没有办法为 vscode 中的模块之间传递的 types/variables 启用智能感知?
在这种情况下,我有 3 modules/files:
Test.js
// Test.js
export default class Test {
constructor() {
this.whatever = {
a: "a",
b: "b"
};
}
someFunc() {
console.log(this.whatever.b);
}
}
其他Test.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,如何让编辑器"aware"知道什么样的变量被传递给OtherTest.js中的函数,这样我就可以拥有测试的所有成员class 智能感知中的弹出窗口?
我想这会在 vscode 中完成,因为类型化参数是不可能的,但除了 TypeScript 之外我不知道,这不是一个选项。
根据VS Code docs:
By default the JavaScript language service will analyze and provide IntelliSense for all files in your JavaScript project.
但是,您可以在 jsconfig.json
中指定要包含或排除的文件。
对于您的情况,我已经在 VS Code 中重新创建了您的项目,它在获取类型 OtherTest
类型 [image]:
方面运行良好 "out-of-the-box"
VS Code Intelisence
编辑: 但我认为,问题不在 VS Code 中,你想知道哪种类型的变量通常会起作用。
在这种情况下,您可以查看以下选项:
- 使用静态类型语言,例如打字稿
- 为 Javascript 使用静态类型检查器,例如流量
- 使用 JSDoc
TL;DR:有没有办法为 vscode 中的模块之间传递的 types/variables 启用智能感知?
在这种情况下,我有 3 modules/files:
Test.js
// Test.js
export default class Test {
constructor() {
this.whatever = {
a: "a",
b: "b"
};
}
someFunc() {
console.log(this.whatever.b);
}
}
其他Test.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,如何让编辑器"aware"知道什么样的变量被传递给OtherTest.js中的函数,这样我就可以拥有测试的所有成员class 智能感知中的弹出窗口?
我想这会在 vscode 中完成,因为类型化参数是不可能的,但除了 TypeScript 之外我不知道,这不是一个选项。
根据VS Code docs:
By default the JavaScript language service will analyze and provide IntelliSense for all files in your JavaScript project.
但是,您可以在 jsconfig.json
中指定要包含或排除的文件。
对于您的情况,我已经在 VS Code 中重新创建了您的项目,它在获取类型 OtherTest
类型 [image]:
VS Code Intelisence
编辑: 但我认为,问题不在 VS Code 中,你想知道哪种类型的变量通常会起作用。
在这种情况下,您可以查看以下选项:
- 使用静态类型语言,例如打字稿
- 为 Javascript 使用静态类型检查器,例如流量
- 使用 JSDoc