[typescript] Angular 2 Typescript 앱에서 moment.js 라이브러리를 사용하는 방법은 무엇입니까?

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 ()을 호출하면 오류가 발생합니다. 간단해야합니까, 누구나 작동하는 명령 줄 / 가져 오기 조합을 제공 할 수 있습니까?



답변

2017 년 4 월 업데이트 :

버전 2.13.0부터 Moment에는 유형 스크립트 정의 파일이 포함되어 있습니다. https://momentjs.com/docs/#/use-it/typescript/

콘솔 유형으로 npm으로 설치하십시오.

npm install --save moment

그런 다음 Angular 앱에서 가져 오기는 다음과 같이 쉽습니다.

import * as moment from 'moment';

그게 다야, Typescript를 완벽하게 지원합니다!

보너스 편집 :Moment Typescript에서 와 같이 변수 또는 속성을 입력하려면 다음과 같이하십시오 :

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


답변

moment타사 글로벌 리소스입니다. 모멘트 객체 window가 브라우저에 있습니다. 따라서 importangular2 애플리케이션에서 올바르지 않습니다 . 대신 <script>moment.js 파일을로드 할 태그를 HTML에 포함 하십시오.

TypeScript를 행복하게하려면 추가 할 수 있습니다

declare var moment: any;

파일 상단에서 컴파일 오류를 중지하는 데 사용하거나

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

또는 tsd를 사용하여 TypeScript가 자체적으로 찾을 수있는 moment.d.ts 파일을 설치하십시오.

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 src="node_modules/moment/moment.js" />

모듈 로딩 moment

먼저 moment.js 파일을로드하려면 System.js와 같은 모듈 로더를 설정해야 합니다.

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

그런 다음 필요한 순간에 파일로 순간을 가져옵니다.

import * as moment from 'moment';

또는

import moment = require('moment');

편집하다:

Webpack, SystemJS 빌더 또는 Browserify와 같은 일부 번 들러에는 창 오브젝트에서 벗어나는 옵션도 있습니다. 이에 대한 자세한 내용은 해당 웹 사이트를 방문하여 지시하십시오.


답변

다음은 나를 위해 일했습니다.

먼저 유형 정의를 설치하십시오.

typings install moment --save

(참고 : NOT --ambient)

그런 다음 적절한 수출 부족 문제를 해결하려면 다음을 수행하십시오.

import * as moment from 'moment';


답변

나는 다음과 같이 갈 것이다.

npm install moment --save

당신으로 systemjs.config.js파일의 map배열 추가 :

'moment': 'node_modules/moment'

packages배열 추가 :

'moment': { defaultExtension: 'js' }

component.ts에서 다음을 사용하십시오.
import * as moment from 'moment/moment';

그리고 그게 다야. 컴포넌트 클래스에서 사용할 수 있습니다.

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


답변

우리는 지금 모듈을 사용하고 있습니다.

시험 import {MomentModule} from 'angular2-moment/moment.module';

npm install angular2-moment

http://ngmodules.org/modules/angular2-moment


답변

Typescript프로젝트 에서 사용 하려면 순간을 설치해야합니다.

npm install moment --save

설치 후, .ts파일을 가져온 후 모든 파일 에서 사용할 수 있습니다 .

import * as moment from "moment";


답변

— 업데이트 11/01/2017

타이핑 은 더 이상 사용되지 않으며 npm @types 로 대체되었습니다 . 이제부터는 형식 선언을 얻는 데 npm 외에 다른 도구가 필요하지 않습니다. Moment를 사용하려면 이미 자체 유형 정의를 제공하므로 @types를 통해 유형 정의를 설치할 필요가 없습니다 .

따라서 3 단계로 줄어 듭니다.

1-유형 정의가 포함 된 설치 모멘트 :

npm install moment --save

2-HTML 파일에 스크립트 태그를 추가하십시오.

<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 src="node_modules/moment/moment.js" />

3-이제 그냥 사용할 수 있습니다. 기간.

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