ES 模块:弃用导出

And*_*aro 5 javascript ecmascript-6 deprecation-warning

作为图书馆管理员,我想弃用旧导出以支持新导出

为了保持向后兼容性,我想暂时保留这两个出口警告那些仍在使用旧出口的用户

function foo(){}
export {foo as oldExport}
Run Code Online (Sandbox Code Playgroud)

function foo(){}
export {foo as newExport}
export {foo as oldExport} // When user import it I'd like to fire a `console.warn`
Run Code Online (Sandbox Code Playgroud)

我想出的唯一解决方案包括使用外部 将导出的函数包装在另一个已弃用的函数中。我认为这对于我正在研究的小型图书馆来说不是最佳选择。

有没有我忽略的其他方法?

str*_*str 3

JavaScript 中没有官方的方法可以做到这一点(据我所知)。

至少在 IntelliJ IDEA 以及可能大多数其他 IDE 中有效的一种方法是下面的方法。它将把任何导入和任何使用标记oldExport为已弃用(默认格式带有删除线)。

function foo() {}
export {foo as newExport}

/**
 * @deprecated
 */
const oldExport = foo;
export {oldExport}
Run Code Online (Sandbox Code Playgroud)

请参阅http://usejsdoc.org/tags-deprecated.html

如果日志消息是绝对必要的(我不会这样做),那么你必须自己做。