【问题标题】:How to declare module public type definition for NPM in Typescript如何在 Typescript 中为 NPM 声明模块公共类型定义
【发布时间】:2016-03-06 21:26:41
【问题描述】:

我创建了一个 npm 包 (https://github.com/d6u/observe-object-path)。它是用打字稿写的。它有一个构建步骤将其编译为 ES5,因此任何 JavaScript 环境都可以使用它 (https://github.com/d6u/observe-object-path/blob/master/package.json#L39-L41)。

  1. 由于模块已经用 Typescript 编写。是否可以为我的包自动生成一个.d.ts 文件,以便使用 Typescript 的人可以在最少或没有配置的情况下使用它?

  2. 如果无法自动生成,将.d.ts 文件放在ts 目录下的最佳位置是什么(这显然是Rx 4 正在做的https://github.com/Reactive-Extensions/RxJS/tree/master/ts)?

    李>

【问题讨论】:

    标签: javascript typescript npm


    【解决方案1】:

    要为您的项目生成 .d.ts 文件,您必须在编译器配置中启用 declaration 选项。

    tsconfig.json 的示例。

    {
        "compilerOptions": {
            "module": "system",
            "target": "es5",
            "noImplicitAny": false,
            "sourceMap": false,
            "experimentalDecorators": true,
            "declaration": true
        },
        "exclude": [
            "node_modules"
        ]
    }
    

    【讨论】:

    • 谢谢。我想通了。如果您按照这些步骤更新您的答案,我可以接受: 1. 重要的是 tsconfig.json 的 tscdeclaration 属性的 -d 选项。 2. 然后您必须添加"typings": "lib/index.d.ts" 以指向您的package.json 中索引文件的任何类型定义(此处的lib/index.d.ts 只是一个示例)。 3. 我还没有弄清楚如何使环境(或嵌套的依赖项工作)。
    • @Daiwei 如果您找到了更适合您的问题的答案,您可以自己发布。 :)
    猜你喜欢
    • 2017-07-30
    • 2017-02-17
    • 2021-06-06
    • 1970-01-01
    • 2017-03-06
    • 2021-09-07
    • 1970-01-01
    • 2020-11-10
    • 2016-12-06
    相关资源
    最近更新 更多