发布
- 发布到npm上的@types organization。
如果你能控制要使用你发布的声明文件的那个npm包的话,推荐第一种方式。 这样的话,你的声明文件与JavaScript总是在一起传递。
包含声明文件到你的npm包
如果你的包有一个主文件,你还是需要在package.json
里指定主声明文件。 设置 types
属性指向捆绑在一起的声明文件。 比如:
注意"typings"
与"types"
具有相同的意义,也可以使用它。
同样要注意的是如果主声明文件名是index.d.ts
并且位置在包的根目录里(与index.js
并列),你就不需要使用属性指定了。
这里,我们的包依赖于browserify
和typescript
包。 browserify
没有把它的声明文件捆绑在它的npm包里,所以我们需要依赖于@types/browserify
得到它的声明文件。 相反,它把声明文件放在了npm包里,因此我们不需要依赖额外的包。
我们的包要从这两个包里暴露出声明文件,因此browserify-typescript-extension
的用户也需要这些依赖。 正因此,我们使用 "dependencies"
而不是"devDependencies"
,否则用户将需要手动安装那些包。 如果我们只是在写一个命令行应用,并且我们的包不会被当做一个库使用的话,那么我就可以使用 devDependencies
。
不要在声明文件里使用/// <reference path="…" />
。
务必阅读使用依赖一节了解详情。
打包所依赖的声明
如果你的类型声明依赖于另一个包:
- 不要把依赖的包放进你的包里,保持它们在各自的文件里。
- 不要将声明拷贝到你的包里。
在发布声明文件包之后,确保在DefinitelyTyped外部包列表里面添加一条引用。 这可以让查找工具知道你的包提供了自己的声明文件。