TypeScript:“同时导入和导出”

时间:2018-02-01 03:21:44

标签: typescript types module

是否有办法在同一个TypeScript文件中同时导入和导出同一个命名变量?

例如,以下情况:

import { State as UIState } from './ui'
import { State as ConnectionState } from './connection'

export { State as UIState } from './ui'
export { State as ConnectionState } from './connection'

export type State = {
    ui: UIState
    connection: ConnectionState
}

为了降低写作成本,我希望能够写出类似的东西:

export import { State as UIState } from './ui'

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

  

是否有办法在同一个TypeScript文件中同时导入和导出同一个命名变量

没有。没有 JS模块语法。

答案 1 :(得分:0)

创建“ index.ts”文件(或foo.ts)减少了重复的导入/导出。 (我不确定这是否是一个好的解决方案)

export * from './product-form.component'
export * from './product-list.component'

角度模块

import { NgModule } from '@angular/core';
import * as c from './index';
export * from './index'

@NgModule({
    declarations: [ 
        c.ProductListComponent,
        c.ProductFormComponent, 
    ]
  })
  export class ProductModule { }

答案 2 :(得分:0)

您可以合并/聚合导出和导入语句,将它们合并为一个语句,如 export MDN doc 中所述。应用于您的示例:

export { State as UIState } from './ui'

上述方法适用于命名导出和默认导出,也支持解构。