我注意到有一个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博客上的公告回答了这个问题:声明文件的未来
摘要:
@types
npm组织用于获得具有npm
的类型定义。使用这些类型定义是TypeScript 2.0中的一项功能。
这将取代目前的项目/工具,如打字和tsd,尽管这些将在一段时间内继续得到支持。
这将是Typescript 2.0中推出的一个功能。这为UMD模块/库及其各自的定义提供了类型支持。
请参阅(UMD模块定义的内置支持),以更好地了解当前环境打字的问题。