是否支持跨文件namespace合并?

共享包开发场景,目标是把所有export的内容(包括 function、class、interface、const、enum)放到一个namespace下。由于内容较多,所以所有内容是分散在多个ets文件中的。

尝试的方案:

  1. 所有ets文件都添加 namespace,由于跨文件的namespace不会自动合并,所以export时还是只能选择某个文件的内容。
  2. 在一个namespace中,把其它ets定义的内容重新export,提示无法在namesapce中export类型定义
  3. 在一个namespace中,把所有内容定义到当前namespace下,其它地方反过来引用, 导致循环依赖,单测无法执行
阅读 637
1 个回答

第1、3种方式当前无法实现,第2种方式,实现步骤如下。

test1.ets:

//test1.ets
namespace mynamespace{
  export function foo1(){
    console.log("testTAG","File1")
  }
}
export default mynamespace

test2.ets:

//test2.ets
namespace mynamespace{
  export function foo2(){
    console.log("testTAG","File2")
  }
}
export default mynamespace

test3.ets:

//test3.ets
import mynamespace1 from './test1'
import mynamespace2 from './test2'
export namespace test1111{
  export let my1 = mynamespace1.foo1()
  export let my2 = mynamespace2.foo2()
}

Index.ets:

//Index.est
import { test1111 } from './test3'
test1111.my1
test1111.my2
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进