首页 > 解决方案 > 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 项目一起工作?

标签: javascriptvisual-studio-codejsdoc

解决方案


您应该从 VSCode 获得关于function Foo()建议使用 ES2015class语法的提示。该语法将您的代码更改为此

/**
 * Foo Class
 * @typedef {Object} Foo
 */
class Foo {
  constructor() {
  }
  sayHello() {
    alert("Hello!");
  }
}

并且按预期在另一个文件中提供了提示。

有趣的是,通过保持代码原样并简单地删除所有 JSDoc 会产生相同的结果。


推荐阅读