Typescript自动完成在VS Code中无法正常工作(NestJS)

but5z9lq  于 2023-06-30  发布在  TypeScript
关注(0)|答案(1)|浏览(166)

下面的代码是从nest g res users生成的。
在VS Code中添加BadRequestException时,重构功能(Ctrl + .)可以正常工作,但自动完成功能不能。它不会自动完成名称,需要使用Ctrl + .添加import语句。
VS Code refactoring feature
VSCode autocompletion feature
相同的自动完成功能在PyCharm 2023.1.2中工作正常。它会自动完成名称并添加import语句。
PyCharm autocompletion feature
我认为我的VSCode可以正确识别node_modules路径,因为重构特性工作得很好。但我不知道为什么自动完成功能不起作用。:(
我已经在我的VS代码中启用了以下功能。

  • 内置“TypeScript和JavaScript语言功能”
  • 插件“npm Intellisense”。
  • 插件“IntelliCode”。

有什么建议可以在VS Code中更好地使用JS/TS自动完成功能?
目前,我在VS Code中使用"typescript.suggest.enabled": true
这是我的npm list

  • @nestjs/cli@9.5.0
  • @nestjs/common@9.4.3
  • @nestjs/core@9.4.3
  • @nestjs/mapped-types@2.0.0
  • @nestjs/platform-express@9.4.3
  • @nestjs/schematics@9.2.0
  • @nestjs/testing@9.4.3
  • @types/express@4.17.17
  • @types/jest@29.5.1
  • @types/node@18.16.12
  • @types/supertest@2.0.12
  • @typescript-eslint/eslint-plugin@5.60.0
  • @typescript-eslint/parser@5.60.0
  • eslint-config-prettier@8.8.0
  • eslint-plugin-prettier@4.2.1
  • eslint@8.43.0
  • jest@29.5.0
  • prettier@2.8.8
  • reflect-metadata@0.1.13
  • rxjs@7.8.1
  • source-map-support@0.5.21
  • supertest@6.3.3
  • ts-jest@29.1.0
  • ts-loader@9.4.3
  • ts-node@10.9.1
  • tsconfig-paths@4.2.0
  • typescript@5.1.3

重现问题

系统信息

  • Windows 11家庭版
  • Visual Studio Code 1.79.2
  • npm 9.5.1

已安装全局包

  • @nestjs/cli@9.5.0
  • 联系我们
  • typescript@5.1.3

命令

// Select npm for package manager
> nest new project
> cd project

// Select REST API and generate CRUD entry points
> nest g res users
> code .

在文件project/src/users/users.controller.ts中:

...

@Get(':id')
findOne(@Param('id') id: string) {
  // Here is the problem, cannot find `BadRequestException`
  if (+id > 1) {
    throw new BadReq<autocomplete>
  }
  return this.usersService.findOne(+id);
}
...
vq8itlhq

vq8itlhq1#

为了找到问题的原因,我尝试了一些方法。
首先,我试图在MacOS Ventura上重现这个问题,但问题没有发生。
接下来,我在一个新的Windows示例上尝试了这个方法,但它也无法重现这个问题。
所以我回到我的开发环境,完全删除了VS Code并重新安装了它。这一点用都没有。
最后,我删除并重新安装了npm。之后,问题消失了。

**我不知道问题的原因是什么。但在某些情况下,重新安装npm可以解决VS Code上的自动完成问题。

相关问题