在 Visual Studio Code 中从 NPM 包自动导入

Posted

技术标签:

【中文标题】在 Visual Studio Code 中从 NPM 包自动导入【英文标题】:Auto Import from NPM packages in Visual Studio Code 【发布时间】: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 Import 或 Auto Import ES6/TS 都没有工作。

我怎样才能做到这一点?

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在 Visual Studio Code 中从 NPM 包自动导入的主要内容,如果未能解决你的问题,请参考以下文章

如何打开Visual Studio Code的多个实例

Visual Studio Code快速删除空行及几个常用快捷键总结

如何在 Visual Studio 2015 中从 Git 获取特定版本?

Visual Studio code快捷键

在 Visual Studio 2010 中从 .NET 项目启动 C++ 项目

Git 命令不适用于 Visual Studio Code