<p>momento no tiene miembro predeterminado</p>

Creado en 9 ene. 2018  ·  4Comentarios  ·  Fuente: moment/moment

Descripción del problema y pasos para reproducirlo:
Intentando implementar la configuración regional de la instancia en el proyecto de mecanografiado
https://momentjs.com/docs/#/i18n/instance -locale /
pero cuando import moment from 'moment' me sale el error:
moment has no default export

objetivo:
Necesito formularios personalizados (acortados, como 'sec' en lugar de 'segundos') de cadenas humanizadas en algunas partes de la aplicación, por lo que me gustaría usar dos configuraciones regionales en una vista.

Medio ambiente:
proyecto mecanografiado

Otra información que puede ser útil:
TypeScript, Angular4

Si informa un problema, ejecute el siguiente código en el entorno que está utilizando e incluya el resultado:

console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)
Tue Jan 09 2018 15:46:46 GMT+0100 (CET)
VM12667:2 09/01/2018, 15:46:46
VM12667:3 -60
VM12667:4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
VM12667:5 Uncaught ReferenceError: moment is not defined
    at <anonymous>:5:13



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



import * as moment from 'moment';
console.log('version', moment.version);



md5-1f8dcc13f1f8244065e29a6dcf5a9efa



version 2.20.1

Me gustaría evitar la solución import * as moment from 'moment'; ya que bloquea tres sacudidas en la agrupación

¡Muchas gracias! :)

Comentario más útil

RTFM 😂

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it / typescript /

Todos 4 comentarios

RTFM 😂

Note: If you have trouble importing moment, try adding 
"allowSyntheticDefaultImports": true in compilerOptions 
in your tsconfig.json file and then use the syntax

https://momentjs.com/docs/#/use -it / typescript /

¿Existe la posibilidad de que esto se resuelva de una manera en la que allowSyntheticDefaultImport ya no sea necesario? El problema de requerirlo es que requiere que todos los que usan el momento también tengan esta configuración activada.

Al no requerir esta configuración, permite que moment se use fácilmente en proyectos que tienen su propia preferencia por allowSyntheticDefaultImport , pero ahora esa configuración se impone efectivamente a todos.

Solo repito aquí que este es un problema realmente desagradable. Dado que el momento ha optado por no respetar la especificación oficial, significa que algunas bibliotecas ingresan a través de import * as moment from "moment" mientras que otras bibliotecas se ejecutan a través de import defaultMoment from "moment" . Entonces, cuando mi proyecto intenta cargar ambos, simplemente no puedo obtener la configuración correcta para obtener un resumen y compilarlo correctamente. Probé casi todas las permutaciones y combinaciones de allowSyntheticDefaultImports : true , esModuleInterop : true , moduleResolution : "node" y skipLibCheck : true y no puedo obtener una permutación que funcione correctamente. Una solución permitirá que funcione una biblioteca con un formato de importación, pero falla en el otro.

Hay una razón por la que existen especificaciones, y es para crear consistencia. ¿No hay forma de que ese momento pueda tener una variante de moment-es o algo que se pueda importar correctamente, de modo que las personas que quieran seguir la especificación puedan simplemente seguir la especificación, permitiendo que la cadena de herramientas JS funcione como se espera, en lugar de todas las hacks?

+1

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

vbullinger picture vbullinger  ·  3Comentarios

M-Zuber picture M-Zuber  ·  3Comentarios

IbraheemAlSaady picture IbraheemAlSaady  ·  3Comentarios

RobinvanderVliet picture RobinvanderVliet  ·  3Comentarios

benhathaway picture benhathaway  ·  3Comentarios