【问题标题】:What values should I use in package.json for the 'types' field?我应该在 package.json 中为“类型”字段使用什么值?
【发布时间】:2020-04-15 20:18:45
【问题描述】:

我是 JS/TS 领域的菜鸟,出于学习目的,我正在使用 TypeScript 创建一个 NPM 包。在构建工件并将其推送到注册表之前,我使用 tsc 命令将 TS 文件编译为 JS 文件。以下是我的tsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "declaration": true,
        "outDir": "./dist",
        "strict": true
    },
    "include": ["src/"],
    "exclude": [ "node_modules/", "tests/" ]
}

编译后,dist 文件夹与我的src 目录具有相同的目录结构,但它包含所有js 文件和.d.ts 文件,而不是预期的ts 文件。我的问题是如何包含 type definitions 文件?

谷歌搜索,我发现package.json 文件有一个types 字段,我们将路径分配给index.d.ts,在我的例子中是dist/index.d.ts。但它不是唯一具有类型定义的文件。 dist 目录中的许多目录中还有许多其他目录。

如何在最终的工件中包含所有这些类型定义?我还尝试将dist/**/*.d.ts 分配给package.json 中的types 字段,但它不起作用。

我还想知道将类型添加到 TypeScript 包的正确方法是什么。

【问题讨论】:

    标签: node.js typescript typescript-typings package.json


    【解决方案1】:

    一种选择是在 index.ts 中再次export 所有有用的类型,以便它们最终可以包含在index.d.ts 中。我相信AWS SDK 是这样做的。

    例如在index.ts:

    从 './other-file.ts' 导出 { MyType, MyService, MyOption };

    所以你可以在下面输入package.json

    “类型”:“dist/index.d.ts”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2020-07-15
      • 2015-03-05
      • 2018-08-03
      • 2012-02-19
      • 2016-08-07
      相关资源
      最近更新 更多