javascript – es2015重新导出模块并覆盖重新导出模块的单个导出功能

前端之家收集整理的这篇文章主要介绍了javascript – es2015重新导出模块并覆盖重新导出模块的单个导出功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我想重新导出整个模块并仅覆盖重新导出模块的特定功能.但是,当已经重新报告相同的函数时,似乎不会处理导出覆盖函数.

(http://www.ecma-international.org/ecma-262/6.0/#sec-module-semantics-static-semantics-early-errors,’如果ModuleItemList的ExportedNames包含任何重复的条目,则为语法错误.’)

如果我只想覆盖重新导出模块中的特定函数方法,那么我的方法背后的动机是最小化显式重新导出非常大或长的模块.

有没有办法在es6 / es2015中实现我的方法

我的代码到目前为止:

模块a.js

export class MyFirstStandardClass {
  sendMeMessages() {
  return `hello,I'm a standard implementation`;
  }
}
export function talkToMe() {
  return `standard talking: how are you doing?`;
}

模块b.js

import * as StandardModule from 'module-a';

export function talkToMe(condition = true) {
  if (condition) {
    return `project conditional talking: ${StandardModule.talkToMe()}`;
  }
  return `project without a condition!`;
}

export * from 'module-a';

模块c.js

import * as MyModule from 'module-b';
import React,{ Component } from 'react';

export default class App extends Component {

  componentWillMount() {
    console.log(MyModule);
    this.myFirstStandardInstance = new MyModule.MyFirstStandardClass();
  }

  render() {
    return (
      
最佳答案
看来我的第一个解决方案应该有效.根据ECMAScript规范,本地出口应优先考虑. (http://www.ecma-international.org/ecma-262/6.0/#sec-getexportednames)

这是Babel转换器中的一个问题.更多信息:https://github.com/systemjs/systemjs/issues/1031#issuecomment-171262430

Babel:https://phabricator.babeljs.io/T6967中的问题

猜你在找的JavaScript相关文章