【问题标题】:Auto Import from NPM packages in Visual Studio Code在 Visual Studio Code 中从 NPM 包自动导入
【发布时间】:2018-08-04 09:48:26
【问题描述】:

我只是想通过 VS Code 中的智能感知自动导入 TypeScript,就像 C# 在 Visual Studio 中已有很长时间了。使用 TypeScript Importer 这适用于我的自定义类,但不适用于已安装的 npm 包。

简单示例:linq 已安装,我想使用Enumerable。我没有得到任何智能感知,VS Code 说 Cannot find name Enumerable。只有在手动输入import * as Enumerable from 'linq' 后它才能工作。我还尝试了其他插件,例如 Auto ImportAuto Import ES6/TS 都没有工作。

我怎样才能做到这一点?

请注意,似乎不需要用于打字的包@types/linq

npm WARN 已弃用 @types/linq@2.2.33:这是 Linq.JS (https://linqjs.codeplex.com/) 的存根类型定义。 Linq.JS 提供了自己的类型定义,所以你不需要安装@types/linq!

【问题讨论】:

    标签: c# typescript intellisense typescript-typings


    【解决方案1】:

    根据安装的 npm 包的类型,您可能需要也可能不需要单独的类型包。如果您安装的包是作为模块发布的(不是全局的)并且它具有类型定义,那么导入应该可以正常工作。例如,您应该看到在 es6 模块中定义的您自己的类型出现在 inteli-sense 中。确保 tsconfig.json 配置正确。请查阅文档here 以确保一切配置正确 使用最新版本的 vs-code,您不需要任何插件。 AutoImport 开箱即用。尝试删除所有导入插件,然后重试。此外,如果 linq 库本身提供类型定义,请尝试删除 linq 类型库。 我一直在我的 Angular 项目中使用自动导入功能,它工作得很好。 在您的 linq 示例中,我认为它不起作用的原因是 linq 没有将 Enumerable 类型导出为默认导出,或者包没有在其索引文件中导出 Enumerable 类型。然后“*”导入只是一种解决方法,您可以将全局对象别名为某物。您可以很好地调用您的可枚举“FooEnumerable”,它仍然可以正常工作。

    【讨论】:

      猜你喜欢
      • 2018-09-16
      • 2021-03-02
      • 2017-02-13
      • 2020-06-23
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多