https://www.tslang.cn/docs/handbook/declaration-files/publishing.html
{
    "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"属性指定了。
{
    "name": "browserify-typescript-extension",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts",
    "dependencies": {
        "browserify": "latest",
        "@types/browserify": "latest",
        "typescript": "next"
    }
}
这里,我们的包依赖于browserify和typescript包。 browserify没有把它的声明文件捆绑在它的npm包里,所以我们需要依赖于@types/browserify得到它的声明文件。 typescript,它把声明文件放在了npm包里,因此我们不需要依赖额外的包。
我们的包要从这两个包里获得声明文件,因此browserify-typescript-extension的用户也需要这些依赖。 正因此,我们使用 "dependencies"而不是"devDependencies",否则用户将需要手动安装那些包。 如果我们只是在写一个命令行应用,并且我们的包不会被当做一个库使用的话,那么就可以使用 devDependencies。
不要在声明文件里使用/// <reference path="..." />,应该使用/// <reference types="..." />代替。
原文:https://www.cnblogs.com/cag2050/p/9560272.html