当前位置: 首页 > 知识库问答 >
问题:

前端 - 针对export interface 和 export namespace的疑问?

有骏奇
2023-05-05

我经常看到export interface XXX 和export namespace XXX 还有export class 结合使用:

export interface Disposable {
  /**
   * Dispose this object.
   */
  dispose: () => void
}

export namespace Disposable {
  export function disposeAll(disposables: Disposable[]) {
    for (const disposable of disposables) {
      disposable.dispose();
    }
  }
}

export class DisposableCollection implements Disposable {
  ...
}

请问下,这里有export interface Disposable 和 export namespace Disposable,
我们在使用的时候,是怎样的呢?

import {Disposable} from './disposible'

1、这里引入的是:interface Disposable 还是 namespace Disposable?
2、export interface XXX 和 export namespace 成对出现的好处是什么呢?
3、export namespace Disposable 内的 function disposeAll 为何也要export?如果不export会怎样?

共有1个答案

令狐良骏
2023-05-05

1.你用import {Disposable} from './disposible'那它们两个都引入了,共享名称
2.你可以用相同的名称来表示相关的类型和实现
3.在 Disposable 命名空间内部定义的函数 disposeAll 要用 export,这样其他模块才能访问。如果你不用 export,disposeAll 函数就只能在 Disposable 命名空间内部用。如果你想其他模块能够用 disposeAll 函数,你就要把它导出

 类似资料:
  • #前端##前端面试必备宝典# 我所理解的事件循环是图里的这样的。然后查阅相关资料关于微任务和宏任务的区别。 微任务:直接在js引擎中执行,没有参与事件循环的异步任务 宏任务:参与了事件循环的异步任务 那么问题来了,微任务是怎么进入事件队列的,走不走浏览器线程?走的话那不就是参与了事件循环了?不走的话通过js线程直接放到队列里?

  • 例如我创建了一个dataHook main.ts中 页面有个按钮就执行v.value += 1,为什么console.log还是原值1呢?

  • 执行命令 ts-node **.ts 正常输出this 执行命令 ts-node **.ts 输出undefined 这是为什么?可以避免吗?

  • 我试图使用nginx对一个经典的NodeJS(Express,TS)+Angular应用程序进行Dockerize,但我很难通过nginx正确绑定我的api。 事实上,nginx的目标似乎是我的本地主机:80... ...而我希望它以我的为目标。当我在之后添加时手动ping该url,它就可以工作了。

  • 我试图在fabric rocket chat上联系,但没有得到太多帮助,因此在SO上发布了它。我有以下疑问: 我们是否可以在链码内访问块高度(我知道这在客户端是可行的,但在链码内是否可能) 可以从链码中的正在进行的事务调用新事务吗? 想知道hyperledger Fabric中存储的数据的历史记录在哪里 我们可以根据链码中的transactionid进行查询吗? 在fabric链码中编写调度程序是

  • 问题内容: 我要通过Java线程书。我碰到了这个说法 声明1:- “易失性变量只能安全地用于单次装载或存储操作,不能应用于长期或双重变量。这些限制使得易失性变量的使用不常见” 我没有明白单次加载或存储操作在这里意味着什么?为什么挥发性不能应用于长期或双重变量? 声明2:- “易失性整数不能与 运算符一起使用,因为 运算符包含多条指令。AtomicInteger类具有一种方法,该方法允许以原子方式递