我有一个小型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,还是我没有找到的打字稿选项,我还想在d.ts文件中生成以下行:
export as namespace myLib;
有办法做到这一点吗? 感谢。
答案 0 :(得分:0)
不只是:
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;
。
希望这会有所帮助。