首页 > 解决方案 > TypeScript export an imported object

问题描述

Why can I not do this in TS?

import * as Module from './someplace'
export {
  Module.Thing as Thing
}

And is there some way I can? It doesn't seem like you are allowed to export with dot notation, and I don't understand why.

标签: typescript

解决方案


这不起作用的原因是export { A as B } from './c'语法需要命名导出。这些命名的导出可以是您程序中的显式名称,也可以是default. Module.Thing不是导入文件的命名导出,是对象的属性Module

您提出的语法确实不错,但这不是打字稿编译器实现的语法。

这里import *无所谓。即使Thing由 导出./someplace,在导入之后,它也是一个对象。

但是有几个选项取决于对您的代码库的其余部分最有意义的选项。

您只能从导出它的文件中重新导出您想要的命名导出。但是你没有import *在那个文件中得到使用。

export { Thing } from './someplace

或者,您始终可以导出一个const已分配的任何您想要的内容。这可能最接近您的初衷。

import * as Module from './someplace'
export const Thing = Module.Thing

推荐阅读