gpt4 book ai didi

typescript - "export as namespace"自动在声明文件中

转载 作者:行者123 更新时间:2023-12-03 16:28:24 25 4
gpt4 key购买 nike

我有一个小型 ts 库,它作为 UMD 输出,我还通过 tsconfig 自动输出 *.d.ts 文件:"declaration": true .

导出的文件如下所示:

export class Blue { 
alert(): void {
console.log('alerted');
}
}

使用导出的 UMD 模块声明 window.myLib多变的。

d.ts 文件如下所示:
export declare class Blue {
alert(): void;
}

现在,通过 webpack 或我还没有找到的 typescript 选项,我还想在 d.ts 文件中生成以下行:
export as namespace myLib;

有没有办法做到这一点?
谢谢。

最佳答案

而不仅仅是:

export class Blue { 
alert(): void {
console.log('alerted');
}
}

尝试:
class Blue_ { 
alert(): void {
console.log('alerted');
}
}

export { Blue_ as Blue };

declare global {
namespace myLib {
let Blue: typeof Blue_;
}
}

这会吐出以下声明文件:
declare class Blue_ {
alert(): void;
}
export { Blue_ as Blue };
declare global {
namespace myLib {
let Blue: typeof Blue_;
}
}

现在 myLib.Blue可在全局范围内访问,而且, class Blue可以像 import { Blue } from '...' 一样导入.这相当于拥有 export as namespace myLib;在声明文件中。

希望这可以帮助。

关于typescript - "export as namespace"自动在声明文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com