Vscode 在参数为字符串的函数中使用 javascript 或打字稿的可用属性智能感知

Vscode available properties intellisense using javascript or typescript in a function which's parameter is a string

看这里

对于 addEventListener 函数的第一个参数,vscode 给了我几个内置的建议

我应该如何在我的 javascript 函数中使用它?

可以使用Jsdoc或者typescript等

您始终可以通过将鼠标悬停在 addEventListener 方法上或 ctrl + click 转到 lib.dom.d.ts 文件中的定义来查看 vscode 用于智能感知的内容,其中所有定义都是目前。

通过执行上述操作,您将看到 vscode 使用名为 WindowEventMap 的 class 的键。

所以您的函数接受事件侦听器名称可以是

function myFunc(event: keyof WindowEventMap): void {
}

一个 .d.ts 文件包含 java 脚本代码的类型。这就是您如何从您的问题中以及从发布到 npm 的一些包中获得类型的方式。

别人使用你的java脚本功能怎么样?

  1. 您是否正在创建一个将被其他人使用的 java 脚本库?然后在开发过程中使用 typescript,让 typescript 为您的代码生成 .d.ts 文件。或者,如果您不使用 typescript 进行开发,则必须创建自己的声明。并使用这些 .d.ts 文件发布您的图书馆。有关示例,请参阅 DefenitelyTyped 项目。
  2. 同一个项目中的一个文件使用了这个函数?如果您像我在上面的代码片段中提到的那样使用打字稿,那么智能感知将自动显示给用户。否则,如果您正在使用 java 脚本,那么您仍然可以尝试创建 .d.ts 文件并在您的 ts 配置中引用它们(我自己还没有尝试过)。