npm @types org包中的TypeScript类型

时间:2016-05-31 14:08:59

标签: typescript typescript-typings

我注意到有一个npm组织@types,其中包含打字包,但无法找到相关文档。这些意味着如何使用?

它是否适用于typings工具?如果是这样,如何安装它们?例如,有@types/openlayers个包,但typings search npm:openlayers不返回任何内容。

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

3 个答案:

答案 0 :(得分:100)

从TypeScript 2.0开始,不再需要 typings 。 npm组织是设置开发人员团队的实体。我相信Microsoft在npm中设置了@types组织,并将TypeScript开发团队添加到组织中。 @types组织下的包将根据docs使用types-publisher工具从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"属性,但建议这样做。

关于搜索类型

  

在大多数情况下,类型声明包应始终与npm上的包名称相同,但前缀为@ types /,但如果需要,可以查看https://aka.ms/types以查找包的名称你最喜欢的图书馆。

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

但是当我npm search @types/openlayers时,我没有得到任何结果。但是从网络界面进行搜索确实会给我带来结果。所以我猜npm search不会搜索整个组织。

答案 1 :(得分:41)

TypeScript博客上的公告回答了这个问题:The Future of Declaration Files

摘要:

@types npm组织用于获取npm的类型定义。使用这些类型定义是TypeScript 2.0中的一项功能。

这将替换当前的项目/工具,例如typingstsd,但这些项目/工具将继续得到支持一段时间。

答案 2 :(得分:6)

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

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