我注意到有一个npm组织@types,其中包含打字包,但无法找到相关文档。这些意味着如何使用?
它是否适用于typings工具?如果是这样,如何安装它们?例如,有@types/openlayers
个包,但typings search npm:openlayers
不返回任何内容。
它是否意味着与打字工具分开使用?例如。直接安装npm
?
答案 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中的一项功能。
答案 2 :(得分:6)
这将是一个在Typescript 2.0中推出的功能。这为UMD模块/库及其各自的定义提供了类型支持。
请参阅https://github.com/Microsoft/TypeScript/issues/7125#issuecomment-210182488以更好地了解当前环境类型的问题。