Typescript 导出前展开对象

Typescript 导出前展开对象,typescript,Typescript,我有一个基于另一个对象生成的对象。对象的类型是完全已知的。看起来像这样 const mediaHooks = { sm: () => {}, //some func md: () => {}, //some func }; 现在,我想在导出之前“扩散”该对象,这样它的属性就可以算作顶级导出,我可以像这样导入它们: import {sm} from './media'; 有可能吗?您可以使用commonJs/AMD类导出来获得所需的行为。但这会删除导出该文件中任何其他内

我有一个基于另一个对象生成的对象。对象的类型是完全已知的。看起来像这样

const mediaHooks = {
   sm: () => {}, //some func
   md: () => {}, //some func
};
现在,我想在导出之前“扩散”该对象,这样它的属性就可以算作顶级导出,我可以像这样导入它们:

import {sm} from './media';
有可能吗?

您可以使用commonJs/AMD类导出来获得所需的行为。但这会删除导出该文件中任何其他内容的功能:

export = mediaHooks;
// can be imported now as import {sm} from './media'; in another file
要从该文件导出的所有其他内容也需要包含在
mediaHooks
对象中。如果这对您不可行,则无法在导出中传播对象。在这种情况下,类似这样的东西可能是一个足够好的选择:

export const {sm, md} = mediaHooks;

不,这在技术上是不可能的

相反,考虑使用命名导出和命名空间导入< /P>翻转您的方法。

// media-hooks.js
export const sm = () => {}; //some func
export const md = () => {}; //some func

// app.js
import * as mediaHooks from './media-hooks' ;
import {sm} from './media-hooks';

@Terry默认导出对象与单独导出其所有属性的命名不同,请参见。