javascript - VSCode:如何让 Intellisense 与 vanilla Javascript 项目一起工作?
问题描述
我有一个foo.js
文件:
/**
* Foo Class
* @typedef {Object} Foo
*/
function Foo(){
}
Foo.prototype.sayHello = function (){
alert("Hello!");
};
在我的bar.js
文件中,我有:
/** @type {Foo} */
var foo = new Foo();
foo.sayHello();
但如果我输入foo.
Intellisense 不建议sayHello()
。
这是一个旧的 vanilla Javascript 项目(没有 npm/node/requirejs 等),JS 文件只是加载到 HTML 中:
<script src="foo.js"></script>
<script src="bar.js"></script>
有没有办法让 Intellisense 与 vanilla Javascript 项目一起工作?
解决方案
您应该从 VSCode 获得关于function Foo()
建议使用 ES2015class
语法的提示。该语法将您的代码更改为此
/**
* Foo Class
* @typedef {Object} Foo
*/
class Foo {
constructor() {
}
sayHello() {
alert("Hello!");
}
}
并且按预期在另一个文件中提供了提示。
有趣的是,通过保持代码原样并简单地删除所有 JSDoc 会产生相同的结果。
推荐阅读
- amazon-web-services - 存储桶记录表单 Applicationloadbalancer 的访问被拒绝:请检查 S3bucket 权限
- mongodb - 在 MongoDB 中复制和重命名文档字段
- java - Kurento,与远程相机连接时 url 无效
- swift - Swift:无法在 stackView 中剪辑图像
- javascript - 拖放不会禁用按钮,因为它不属于正确的 `if` 语句
- linux - 如何在二进制文件内部了解调用它的符号链接?
- geometry - 如何确定一个值是否落在圆上的特定角度范围内?
- java - 如何使用 slf4j 登录公共共享库?
- angularjs - 在附加语句中插入ng-click angular js
- javascript - 使用 firebase 发送通知时用户名为空