我尝试使用它与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()时,我得到一个错误。 应该是简单的,谁能提供一个命令行/导入组合,将工作?


当前回答

我认为:

NPM安装时刻——保存

在systemjs.config.js文件的map数组中添加:

“时刻”:“node_modules /时刻”

向包数组添加:

- = ytet -伊甸园字幕组= -翻译:

在你的组件中。ts使用: Import * as moment from 'moment/moment';

就是这样。你可以从组件的类中使用:

今天:string = moment()。format('D MMM YYYY');

其他回答

Moment是第三方全球资源。moment对象位于浏览器的窗口上。因此,在你的angular2应用中导入它是不正确的。相反,在加载moment.js文件的html中包含<script>标记。

为了让TypeScript满意,你可以添加

declare var moment: any;

在你的文件顶部,你可以使用它来停止编译错误,或者你可以使用

///<reference path="./path/to/moment.d.ts" />

或者使用tsd来安装moment.d.ts文件,TypeScript可以自己找到这个文件。

例子

import {Component} from 'angular2/core';
declare var moment: any;

@Component({
    selector: 'example',
    template: '<h1>Today is {{today}}</h1>'
})
export class ExampleComponent{
    today: string = moment().format('D MMM YYYY');
}

只需确保在html中添加script标签,否则moment将不存在。

<script src="node_modules/moment/moment.js" />

模块加载力矩

首先,你需要设置一个模块加载器,比如System.js来加载moment commonjs文件

System.config({
    ...
    packages: {
        moment: {
            map: 'node_modules/moment/moment.js',
            type: 'cjs',
            defaultExtension: 'js'
        }
    }
});

然后将moment导入到需要使用的文件中

import * as moment from 'moment';

or

import moment = require('moment');

编辑:

还有一些捆绑器的选项,如Webpack或SystemJS builder或Browserify,将保持窗口对象的时刻。欲了解更多相关信息,请访问它们各自的网站获取指导。

要在Typescript项目中使用它,你需要安装moment:

NPM安装时刻——保存

在安装moment之后,你可以在导入后的任何.ts文件中使用它:

Import * as moment from "moment";

除了SnareChop的答案,我还必须更改momentjs的类型文件。

在moment-node.d。我替换的ts:

export = moment;

with

export default moment;

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

import moment from 'moment';

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

——2017年11月1日更新

Typings现在已弃用,被npm @types所取代。从现在开始,除了npm,获取类型声明将不需要任何工具。要使用Moment,您不需要通过@types安装类型定义,因为Moment已经提供了自己的类型定义。

因此,它简化为3个步骤:

1 -安装时刻,包括类型定义:

npm install moment --save

2 -在HTML文件中添加script标签:

<script src="node_modules/moment/moment.js" />

3 -现在你可以使用它了。时期。

today: string = moment().format('D MMM YYYY');

——原创答案

这只需要3个步骤:

1 -安装力矩定义- *.d。ts文件:

typings install --save --global dt~moment dt~moment-node

2 -在HTML文件中添加script标签:

<script src="node_modules/moment/moment.js" />

3 -现在你可以使用它了。时期。

today: string = moment().format('D MMM YYYY');