js能否以具名的方式export一个对象中包含的方法?

作者站长头像
站长
· 阅读数 32

背景描述:需要对第三方库的某个方法进行重写,但其他方法希望能直接暴露出去

比如说我预期改掉react中的useRef

import * as React from 'react';

const {useRef, ...rest}
const myUseRef = function() {}

export {
  myUseRef as useRef,
  ...rest
}

引入方使用将和直接引入React没有差异

import * as React from 'newReact';
const a = useRef(null);

以上代码表示预期,但实际上...rest这样的写法是不被export支持的

问题描述:

  • 如何以具名的方式暴露一个对象中包含的方法、属性?
  • 或者我是否有其他方法可以在不了解引入模块内容的情况下修改其中的一个方法?
回复
1个回答
avatar
test
2024-07-20

我不李姐?为啥为卡壳。

如果说是使用的默认导出,直接这样不就可以了吗?

import React from 'react'

const myReact = {
  ...React, 
  useRef: function() {}
}
export default myReact

如果说是需要使用 export 导出,并不是export defalut默认导出,则是如下:

export * from 'react'
// 自定义的方法
const myUseRef = function() {}
export { myUseRef as useRef }

相关阅读:Module 的语法 - ECMAScript 6入门

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容