npm@types.org包中的TypeScript打字



我注意到有一个npm组织@types,它包含打字包,但找不到任何文档。这些是如何使用的?

它是用来和打字工具一起使用的吗?如果是,如何安装?例如,有一个@types/openlayers包,但typings search npm:openlayers什么也不返回。

它是要与打字工具分开使用吗?例如,直接与npm一起安装?

从TypeScript 2.0开始,不再需要键入。npm组织是一个建立开发团队的实体。我相信微软在npm中建立了@types组织,并在该组织中添加了TypeScript开发团队。@types组织下的上的包是根据文档使用types发布工具从DefinelyTyped自动发布的。

此外,还有另一种方法可以将types添加到您的包中:

在您的包中.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不会跨组织进行搜索。

TypeScript博客上的公告回答了这个问题:声明文件的未来

摘要:

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

这将取代目前的项目/工具,如打字和tsd,尽管这些将在一段时间内继续得到支持。

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

请参阅(UMD模块定义的内置支持),以更好地了解当前环境打字的问题。

最新更新