Parcel 不会为 TypeScript 库生成类型声明

Parcel does not generate type declarations for a TypeScript library

我刚开始使用 Parcel 时遇到了这个问题,它没有生成类型声明而是发出一个空的 index.d.ts 文件。这是我在 package.json 中的配置:

{
  // ...
  "scripts": {
    "prepare": "yarn build",
    "check": "tsc --noEmit",
    "watch": "parcel watch --no-source-maps --no-cache",
    "build": "parcel build --no-source-maps --no-cache"
  },
  "main": "./lib/index.js",
  "source": "./src/index.ts",
  "types": "./lib/index.d.ts",
  "module": "./lib/esm/index.js",
  "devDependencies": {
    "@parcel/packager-ts": "^2.0.1",
    "@parcel/transformer-typescript-types": "^2.0.1",
    "@types/node": "^16.11.9",
    "parcel": "^2.0.1",
    "typescript": "^4.5.2"
  },
  // ...
}

这是我在代码中定义的 type 的简单示例:

export type Response = {
  /**
   * The list of added/removed hashes
   */
  hashes: string[];
  /**
   * The list of skipped hashes
   */
  skipped: string[];
};

知道为什么会这样吗?我配置不正确吗?我已遵循 this 文档。

谢谢。

您的问题似乎是由 tsconfig.json"compilerOptions" 中的 "incremental": true 行引起的(参见 here)。如果删除此行,parcel 应按预期生成 .d.ts 个文件。

(在理想情况下,parcel 应该能够处理这种情况 - 我提交了 this bug with parcel to report the problem - and this PR 来修复它)。