我正在尝试在 ts 文件中使用 Puppeteer,该文件工作正常,只是当我进入 .ts 而不是 .js 文件时 VSCode Intellisense 就会停止工作。 我看过一些有关此事件的帖子,但没有一个可以帮助我。我做了什么:
- 通过 npm init 创建了一个项目
- 安装的依赖项如下:
"dependencies": {
"@types/node": "^14.0.14",
"events": "^3.1.0",
"puppeteer": "^4.0.1",
"typescript": "^3.9.5" }
"devDependencies": {
"puppeteer-tsd": "0.0.2" }
创建了 tsconfig.json
"target": "es5", "lib": ["es2015", "dom"], "outDir": "./dist", . . . "include": ["src", "node_modules/puppeteer-tsd/src/index.d.ts"]
创建了 src 和 dist 文件夹
将 main.ts 放入我的 src 中
告诉 VSCode 使用项目的 TS 版本而不是自己的版本
然后我编译了。一切正常。但我在打字时没有 IntelliSense 来帮助我。 因此,我在 src 目录中创建了一个 .js 文件,从其中复制了 main.ts 中的代码,然后我让 Intellisense 能够完美地处理所有建议等等。我不知道除了接受它并在没有它的情况下编写代码之外我还能尝试什么。 如果您就可能出现的问题提出任何建议,我将不胜感激。提前谢谢!
编辑:同时我发现,它可以很好地处理非导入函数,例如console.log()。它只是 Puppeteer(或者可能是任何导入的模块)。
最佳答案
除了扩展 vscode.typescript-language-features
提供的 VSCode TypeScript 语言功能需要正常运行之外,您的导入必须正确,适合内置或打包 (@types/x
)要考虑的模块的类型声明。
导入/要求
:
import x = require('x');
为您提供类型感知,但仅在 TypeScript 中有效。
const/require
:
const x = require('x');
在 TypeScript 中也有效,但不会为您提供类型感知; x
的类型为 any
。
有关模块导入的更多信息,请参阅此 question .
关于javascript - Typescript 自动完成功能在 VSCode 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62638851/