在声明文件

时间:2017-02-06 20:19:47

标签: typescript typescript-typings

我有一个小型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;

有办法做到这一点吗? 感谢。

1 个答案:

答案 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;

希望这会有所帮助。