如何在 typescript NPM 包中导出(和使用)JSDoc 注释

Nil*_*oCK 2 npm typescript visual-studio-code

我正在尝试在打字稿中轻松编写可使用的 npm 包。我在https://www.npmjs.com/package/lynda-copy-course/上有一个玩具项目,并且项目组织在以下方面取得了成功:

  • 之后从命令行运行npm install -g lynda-copy-course
  • 之后在另一个 js/ts 项目中工作npm install -s lynda-copy-course
  • 使从 npm 使用它的项目内部知道它的类型定义

最后一个关键点是使用项目不知道源类和方法附带的 JSDoc 样式注释。

如何配置我的项目(package.jsontsconfig.json等)以便使用包可以读取我的 JSDoc 注释?

我目前的package.json

{
  "name": "lynda-copy-course",
  "version": "2.1.7",
  "bin": {
    "lynda-copy-course": "./bin/lynda-copy-course.js"
  },
  "main": "./src/index.js",
  "types": "./src/index.d.ts",
  "dependencies": {
    "inquirer": "^3.0.6",
    "lodash": "^4.17.4",
    "minimist": "^1.2.0",
    "ncp": "^2.0.0",
    "sqlite3": "^3.1.8"
  }
}
Run Code Online (Sandbox Code Playgroud)

我目前的tsconfig.json

{
    "compilerOptions": {
        "declaration": true,
        "module": "commonjs",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true
    },
    "include": [
        "src/**/*",
        "bin/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ],
    "compileOnSave": true,
    "typeAcquisition": {
        "enable": true
    }
}
Run Code Online (Sandbox Code Playgroud)

发布本文时的 Github 存储库:此处

Nil*_*oCK 5

这里的问题出在我的tsconfig.json. 该compilerOptions.removeComments = true设置阻止 JSDoc 注释插入到我生成的.d.ts文件中。

对我来说,这有点出乎意料。Typescript 的 gh 页面上的相关问题:Preserve JSDocs in *.d.ts files when stripping comments