2016-05-31 72 views
90

我注意到有一个npm组织@types,其中包含打字包,但找不到任何文档。这些意味着如何使用?npm @types org包中的TypeScript类型

是否与typings工具一起使用?如果是这样,如何安装它们?例如,有一个@types/openlayers包,但typings search npm:openlayers什么都不返回。

是否与打字工具分开使用?例如。直接安装npm

+6

谢谢你的提问。 –

回答

78

从TypeScript 2.0开始,类型不再需要。 npm组织是一个设立开发团队的实体。我相信微软在npm中设置@types组织,并将TypeScript开发团队添加到组织中。 @types组织下的软件包将根据docs使用类型发布者工具从DefinitelyTyped自动发布。

此外,为了有另一种方式来增加types到你的包:

在你的package.json

如果你的包有一个主.js文件,你需要指明主声明文件也在您的package.json文件中。将types属性设置为指向您的捆绑声明文件。例如:

{ 
    "name": "awesome", 
    "author": "Vandelay Industries", 
    "version": "1.0.0", 
    "main": "./lib/main.js", 
    "types": "./lib/main.d.ts" 
} 

注意,"typings"场是"types"的代名词,并且可以使用。

还要注意的是,如果你的主要申报文件被命名为index.d.ts,住在包的根(旁边index.js)你不需要为了纪念"types"财产,但最好是这样做的。

关于搜索类型

在大多数情况下,类型声明包应始终具有相同的名称作为新公共管理软件包的名称,但@类型/前缀,但如果你需要,你可以请查看https://aka.ms/types以查找您喜爱的图书馆的套餐。

从 - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

但是,当我做了npm search @types/openlayers,我没有得到任何结果。但是通过网络界面进行搜索确实让我获得了结果。所以我想npm search不跨组织搜索。

+0

很好的回答!少量编辑会很好,但是这对解释当前状态的能力要好得多。 –

+0

既然你在''types''属性下的''package.json''中指定了一个文件,我注意到你正在谈论**捆绑声明文件**。在像gulp这样的自动构建系统中实现这一点最简单的方法是什么? – Nicky

6

这将是在Typescript 2.0中推出的一项功能。这为UMD模块/库及其各自的定义提供了类型支持。

请参阅https://github.com/Microsoft/TypeScript/issues/7125#issuecomment-210182488以更好地了解目前使用环境类型的问题。

+0

谢谢!这很有用,但我没有看到讨论@types npm组织的GitHub问题。 @types org是专门为UMD'///

37

公布打字稿博客回答了这个:The Future of Declaration Files

摘要:

@types NPM组织是获得与npm类型定义。使用这些类型定义是TypeScript 2.0中的一个特性。

这将取代目前的项目/工具,如typingstsd,虽然这些将继续支持一段时间。

+1

嘿罗恩,所以我想要得到这些设置,但它似乎并不像VSCode实现我已安装它们。在使用'core-js' w /'npm i @ types/core-js --save'之类的东西后,我可以看到它在文件夹中,但项目仍然会抛出错误。还有什么我应该做的?我是否需要让tsconfig知道@types或其他?就像肖恩说的那样,目前还没有任何类型的文档:( –

+0

@MarkPieszak你必须确定VSCode使用的是TS2.0。查看如何在本地安装TypeScript并在VSCode中使用它:https://github.com/Microsoft/TypeScript/wiki/Nightly-drops –

+0

是的,它是@ nino.porcino谢谢:)'tsdk'需要指向2.0beta安装的TS –

相关问题