【问题标题】:Spread an object before exporting在导出之前展开对象
【发布时间】:2021-03-28 16:40:21
【问题描述】:

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

const mediaHooks = {
   sm: () => {}, //some func
   md: () => {}, //some func
};

现在,我想在导出之前“传播”该对象,因此它的属性算作顶级导出,我可以像这样导入它们:

import {sm} from './media';

有可能吗?

【问题讨论】:

标签: typescript


【解决方案1】:

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

相反,请考虑使用命名导出和命名空间导入来翻转您的方法

// 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';

【讨论】:

    【解决方案2】:

    您可以将export assignments 用于commonJs/AMD 之类的导出,以获得所需的行为。但这消除了导出该文件中其他任何内容的能力:

    export = mediaHooks;
    // can be imported now as import {sm} from './media'; in another file
    

    您想从该文件导出的所有其他内容也需要包含在mediaHooks 对象中。如果这对您不可行,则无法在导出中传播对象。在那种情况下,也许这样的事情会是一个足够好的选择:

    export const {sm, md} = mediaHooks;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      相关资源
      最近更新 更多