moment
é um recurso global de terceiros. O momento em que o objeto permanece no window
navegador. Portanto, ele não está correto import
em seu aplicativo angular2. Em vez disso, inclua a <script>
tag no seu html que carregará o arquivo moment.js.
Para deixar o TypeScript feliz, você pode adicionar
declare var moment: any;
na parte superior dos arquivos, onde você o utiliza para interromper os erros de compilação ou pode usar
///<reference path="./path/to/moment.d.ts" />
ou use tsd para instalar o arquivo moment.d.ts que o TypeScript pode encontrar por si próprio.
Exemplo
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');
}
Apenas certifique-se de adicionar a tag de script no seu html ou o momento não existirá.
<script src="node_modules/moment/moment.js" />
Carregamento do módulo moment
Primeiro, você precisa configurar um carregador de módulo como o System.js para carregar o momento em que os arquivos commonjs
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Depois, importe o momento para o arquivo onde for necessário
import * as moment from 'moment';
ou
import moment = require('moment');
EDITAR:
Também existem opções com alguns pacotes configuráveis, como o construtor Webpack ou SystemJS ou o Browserify, que manterão o momento fora do objeto da janela. Para mais informações, visite os respectivos sites para obter instruções.