moment
es un recurso global de terceros. El momento en que el objeto vive window
en el navegador. Por lo tanto, no es correcto import
en su aplicación angular2. En cambio, incluya el<script>
etiqueta en su html que cargará el archivo moment.js.
Para hacer feliz a TypeScript, puede agregar
declare var moment: any;
en la parte superior de sus archivos donde lo usa para detener los errores de compilación, o puede usar
///<reference path="./path/to/moment.d.ts" />
o use tsd para instalar el archivo moment.d.ts que TypeScript podría encontrar por sí mismo.
Ejemplo
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');
}
Solo asegúrese de agregar la etiqueta de script en su html o el momento no existirá.
<script src="node_modules/moment/moment.js" />
Módulo de carga moment
Primero, necesitaría configurar un cargador de módulos como System.js para cargar los archivos commonjs del momento
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Luego, para importar el momento en el archivo donde sea necesario, use
import * as moment from 'moment';
o
import moment = require('moment');
EDITAR:
También hay opciones con algunos paquetes como Webpack o SystemJS Builder o Browserify que mantendrán el momento alejado del objeto de la ventana. Para obtener más información sobre estos, visite sus respectivos sitios web para obtener instrucciones.