Solución:
Actualización de abril de 2017:
A partir de la versión 2.13.0, Moment incluye un archivo de definición de mecanografiado. https://momentjs.com/docs/#/use-it/typescript/
Simplemente instálelo con npm, en su tipo de consola
npm install --save moment
Y luego, en su aplicación Angular, la importación es tan fácil como esto:
import * as moment from 'moment';
Eso es todo, ¡obtienes soporte completo de TypeScript!
Edición adicional: Para escribir una variable o propiedad como Moment
en TypeScript puede hacer esto, por ejemplo:
let myMoment: moment.Moment = moment("someDate");
moment
es un recurso global de terceros. El momento en que el objeto sigue vivo window
en el navegador. Por lo tanto, no es correcto import
en su aplicación angular2. En su lugar, 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 secuencia de comandos en su html o el momento no existirá.
<script src="https://foroayuda.es/node_modules/moment/moment.js" />
Carga del módulo moment
Primero necesitaría configurar un cargador de módulos como System.js para cargar los archivos commonjs de momento
System.config({
...
packages: {
moment: {
map: "https://foroayuda.es/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 fuera del objeto de la ventana. Para obtener más información sobre estos, visite sus respectivos sitios web para obtener instrucciones.
Lo siguiente funcionó para mí.
Primero, instale las definiciones de tipo por un momento.
typings install moment --save
(Nota: NO --ambient
)
Luego, para solucionar la falta de una exportación adecuada:
import * as moment from 'moment';