【问题标题】:export namespace in namespace在命名空间中导出命名空间
【发布时间】:2021-02-26 22:27:06
【问题描述】:

我可以导出包含另一个命名空间 B 的命名空间 A 吗?比如:

// b.ts
export namespace B {
  export const val = 'val';
}
// a.ts
export namespace A {
  //... some thing import b as namespace 
}

--- 上面将作为模块导出并被另一个项目 C 依赖;

// c.ts
import { B } from 'A';

const a = B.val;

我希望 ts 显示 C 中的“命名空间 B”而不是“导入 B”,这似乎是不可能的????;

另一个问题是:如果我可以在导出时将命名空间 B 拆分为多个文件,例如:

// b2.ts
export namespace B {
  export const val2 = 'val2';
}

可以用C导入

// c.ts
import { B } from 'A';

const b2 = B.val2;

【问题讨论】:

    标签: typescript javascript-namespaces


    【解决方案1】:

    我遇到了同样的问题,最后在 Typescript Github repo 上遇到了this answer

    解决方法如下:

    // b.ts (no change here)
    export namespace B {
      export const val = 'val';
    }
    

    在 a.ts 中

    // a.ts
    import {B as _b} from './b.ts'
    export namespace A {
      export import B = _b
    }
    

    最后在 C.ts 中

    import { A } from './a.ts'
    const b2 = A.B.val;
    

    至于你问题的第二部分,我认为thisthis 可以帮助你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      相关资源
      最近更新 更多