在命名空间中导出命名空间

2023-12-29

我可以导出命名空间 A 并在其中包含另一个命名空间 B 吗?就像是:

// 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;

我也遇到了同样的问题,最后遇到了这个答案 https://github.com/Microsoft/TypeScript/issues/20990在 Typescript Github 存储库上。

解决方法如下:

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

in 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;

至于你问题的第二部分,我认为this https://github.com/Microsoft/TypeScript/issues/5395 and this https://stackoverflow.com/questions/30357634/how-do-i-use-namespaces-with-typescript-external-modules可能会帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在命名空间中导出命名空间 的相关文章

随机推荐