我尝试使用它与typescript绑定:

npm install moment --save
typings install moment --ambient -- save

test.ts:

import {moment} from 'moment/moment';

如果没有:

npm install moment --save

test.ts:

var moment = require('moment/moment');

但是当我调用moment.format()时,我得到一个错误。 应该是简单的,谁能提供一个命令行/导入组合,将工作?


当前回答

对于Angular 7+(也支持8,9,10,11):

1:通过命令npm Install moment——save安装moment

2:不要在app.module.ts中添加任何东西

3:只需要在你的组件或任何其他文件的顶部添加import语句,就像这样:import * as moment from 'moment';

4:现在你可以在代码的任何地方使用moment。就像:

myDate = moment(someDate)。格式(“MM / DD / YYYY HH: MM”);

其他回答

如果你愿意添加更多的第三方包,我使用了angular2-moment库。安装非常简单,您应该遵循README上的最新说明。因此,我还安装了类型。

它对我来说就像一个魅力,几乎没有添加任何代码来让它工作。

不确定这对人们来说是否仍然是一个问题,然而……使用SystemJS和MomentJS作为库,这为我解决了这个问题

/*
 * Import Custom Components
 */
import * as moment from 'moment/moment'; // please use path to moment.js file, extension is set in system.config

// under systemjs, moment is actually exported as the default export, so we account for that
const momentConstructor: (value?: any) => moment.Moment = (<any>moment).default || moment;

在那里工作对我来说很好。

2017年4月更新:

从版本2.13.0开始,Moment包含了一个typescript定义文件。https://momentjs.com/docs/#/use-it/typescript/

只要用npm在你的控制台类型中安装它

npm install --save moment

然后在你的Angular应用中,导入就像这样简单:

import * as moment from 'moment';

就是这样,你得到了完全的Typescript支持!

额外编辑:要在Typescript中输入一个变量或属性Moment,你可以这样做,例如:

let myMoment: moment.Moment = moment("someDate");

对于Angular 7+(也支持8,9,10,11):

1:通过命令npm Install moment——save安装moment

2:不要在app.module.ts中添加任何东西

3:只需要在你的组件或任何其他文件的顶部添加import语句,就像这样:import * as moment from 'moment';

4:现在你可以在代码的任何地方使用moment。就像:

myDate = moment(someDate)。格式(“MM / DD / YYYY HH: MM”);

我遵循了允许allowSyntheticDefaultImports的建议(因为没有从时刻到我使用的导出),使用System。然后我听从别人的建议使用:

import moment from 'moment';

在system.js配置中映射时刻。由于某些原因,其他import语句对我不起作用