如何使用多个时刻插件?

Wer*_*son 6 javascript momentjs typescript

我知道如果我想使用它,我必须导入片刻插件.像这样:

import * as moment from "moment-timezone";

//here I can use moment.tr.names() etc.
Run Code Online (Sandbox Code Playgroud)

但是,如果我想使用多个插件呢?我知道插件在瞬间导入时刻,添加其功能然后再次导出时刻.但如果这是正确的,我如何使用多个插件?

一种选择是以不同的名称导入它们,例如:

import * as momentJdate from "moment-jdateformatparser";
import * as momentTimezone from "moment-timezone";
Run Code Online (Sandbox Code Playgroud)

或者我可以将它们合并到这样的一个时刻对象中(使用deepExtend):

let moment = {};
deepExtend(moment, momentJdate, momentTimezone);

//here you should be able to use moment().toJDFString() and moment.tz.names()
Run Code Online (Sandbox Code Playgroud)

但这些似乎都不是干净的代码.有一个更好的方法吗?

fsa*_*int 3

对我有用的东西,我认为逐个导入是干净的。例如:

moment = require('moment-business-days');
moment = require('moment-timezone');
moment().tz('America/New_York').businessAdd(1).startOf('day').add(7, 'hours')
Run Code Online (Sandbox Code Playgroud)

它并不理想,因为它是不透明的,并且如果不了解节点如何工作,您可能会认为第一个要求毫无意义。但它是干净且有效的。