如何在 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 位