如何在 Visual Studio 2015 中为 Typescript 的 typings.json 添加类型?

Posted

技术标签:

【中文标题】如何在 Visual Studio 2015 中为 Typescript 的 typings.json 添加类型?【英文标题】:How does one add a typing to typings.json for Typescript in Visual Studio 2015? 【发布时间】:2016-08-06 12:38:43 【问题描述】:

我不得不问,因为这让我发疯。我在 Google 上看到了 npm 安装类型的方式,但是 Angular2's tutorial 有一个添加了 typings.json 文件,然后它添加了类型文件夹并自动从 DefinitiveTyped 下载了 d.ts 文件。我用jquery试过这个,但它没有下载。我还尝试重建项目,我希望 package.json 包含添加其他类型的命令。

这是我的 package.json 文件中的脚本:

"scripts": 
  "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
  "tsc": "tsc",
  "tsc:w": "tsc -w",
  "lite": "lite-server",
  "typings": "typings",
  "postinstall": "typings install"

这是我尝试过的 typings.json 文件。 es6-shim 和 jasmine 已下载。

  "ambientDependencies": 
   "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
   "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
   "jquery": "github:DefinitelyTyped/DefinitelyTyped/jquery/jquery.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd"

这可能很简单,比如在主题标签之后没有看起来像是校验和的东西。我在哪里可以找到正确的校验和,或者我需要添加什么命令到 package.json 以在编译时检索类型,或者我做错了什么?

Here's another example 在 typings.json 文件中添加一行,然后它会为您安装 d.ts 文件。向下滚动直到您看到手动输入

【问题讨论】:

【参考方案1】:
    确保您已安装npm 打开您选择的控制台(例如命令提示符或 powershell) 导航到您的项目文件夹

仅使用 npm(TypeScript 2 及更高版本):

    npm install --save @types/jquery

    完成:请参阅this 了解更多信息。

使用typings(v.2 之前的打字稿):

    确保您已安装typings,如果没有运行npm install typings --global

    typings install dt~jquery --save --global

    这应该会更新您的 typings.json 文件并下载定义文件。

    在上面的打字示例中,'dt~' 表示它应该在 DefinitelyTyped 存储库中查找 jquery,默认为 'npm'。语法从 0.x 版本到 1.0 版本略有变化,标志 --global 以前是 --ambient

【讨论】:

这是一个很好的答案,但我试图弄清楚package.json 文件中的"postinstall" : "typings install" 如何需要格式化typings.json 条目,以便它与此手动过程执行相同的操作。 假设 package.json 中的 "postinstall": "typings install" 与上面的 npm install typings 相同,npm 是否使用 typings.json 来确定要获取的内容?另外,如果您第二次运行npm install typings,它会保持最新吗?也许我们只需要向postinstall添加一些命令? 这对我有用:“typings install dt~jquery --save --global”。 “dt”定义源存储库,“--save”将定义添加到typings.json文件中。 我可以确认您必须将 dt~ 放在库之前。即使您尝试不使用 dt~ ,打字也会指导您使用正确的名称和详细的错误消息。 在哪里写这些命令?我试过powershell。它不起作用。我正在使用VS 2015 Community。它说The term 'typings' is not recognized as the name of a cmdlet, function, script file, or operable program. CategoryInfo: ObjectNotFound. FullyQualifiedErrorId: CommandNotFoundException【参考方案2】:

我发现,一旦创建了 typings.json 文件,打开并重新保存 package.json 会触发 Typings 下拉。这是我目前的打字文件:


    "ambientDependencies": 
        "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
        "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd"
  

【讨论】:

我试过这个,但它没有运行typings install,这是拉下文件的原因。 如果你看这里:angular.io/docs/ts/latest/guide/… 你可以看到你还需要添加"scripts": "postinstall": "typings install" 到你的package.json

以上是关于如何在 Visual Studio 2015 中为 Typescript 的 typings.json 添加类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2013 中为 Cordova 应用程序启用断点

在 Visual Studio 2015 中为自定义代码分析器抑制警告

在 Visual Studio 中为单个解决方案编译和使用多个项目

在 Visual Studio 2015 中为调试模式运行 iisexpress 32 位而不是 64 位

如何在 Visual Studio 中为空的 Web 应用程序链接 _references.js 文件

如何在 Visual Studio 2015 中创建安装程序?