【问题标题】:How to Type My Own Node Module Using a .d.ts File如何使用 .d.ts 文件键入我自己的节点模块
【发布时间】:2019-10-02 03:39:22
【问题描述】:

我正在使用 webpack 和 awesome-typescript-loader 捆绑我的节点模块。我正在将捆绑的模块导入另一个包。在另一个包中,我收到错误:

Could not find a declaration file for module 'mymodule'

我对包的默认导出是一个初始化的类:

import MyClass from './myClass';
const c = new MyClass();
export default c;

并从我的包中导入:

import c from 'mymodule';

MyClass 是在其文件中键入的,但是如何从模块中导出 .d.ts 文件,以便我的其他包知道 MyClass 类型?

【问题讨论】:

    标签: typescript webpack


    【解决方案1】:

    您可以在 lib 文件夹中添加一个types.d.ts 文件,并将types: "./types.d.ts" 属性添加到其package.json

    这将允许 TS 访问您的库正在导出的所有类型。

    但是,您需要手动编写这些类型。

    更好的解决方案是让 TS 为你生成那些d.ts 文件。 您可以通过在 tsconfig.json 文件中启用 declaration: true 来实现。

    【讨论】:

    • 非常感谢。我试过了,但没有用。我意识到我让 webpack 输出了一个名为 bundle.js 的文件——而主要导出是在 main.d.ts 中输入的。在我将 bundle 重命名为 main 并更新 package.json 文件中的“main”属性后,它现在似乎可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多