Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
¿Cómo usar el formato de duración de momento en TypeScript?

Estoy usando moment.js en mi proyecto TypeScript (Ionic2/Angular2). A raíz de esta publicación , ahora quiero probar un complemento de formato de duración de momento

Tengo el paquete npm y la definición de tipo y puedo usarlo importando como ...

 import moment from 'moment'; ... let duration = moment.duration(decimalHours, 'hours');

Ahora quiero usar el formato de duración de momento

Lo instalé a través npm install moment-duration-format --save y luego la definición de tipo a través npm i @types/moment-duration-format --save .

Puedo ver ambos módulos npm.

Como siempre, siempre hay algún misterio sobre cómo usar tales definiciones de tipos (el uso, incluida la importación, nunca parece estar en ningún doco).

He intentado agregar import 'moment-duration-format'; , import duration from 'moment-duration-format'; (moment-duration-format/index.d.ts' no es un módulo).

Recibo un error al intentar usar de la siguiente manera...

 let dd = moment.duration.format(400.99, 'hours').format('D:HH:mm'); // (TS error [ts] Property 'format' does not exist on type '(inp?: DurationInputArg1, unit?: DurationConstructor) => Duration'.

¿Alguien tiene alguna idea sobre cómo usar esto en TypeScript ?

Gracias por adelantado

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Estaba usando la solución alternativa aquí , pero ahora parece que la definición de ype se ha solucionado. Obteniendo una actualización del tipo def Así que puedo hacer lo siguiente...

 import * as moment from 'moment'; import 'moment-duration-format'; let duration = moment.duration(decimalHours, 'hours') ; let options : moment.DurationFormatSettings = { forceLength : false, precision : 0, template : formatString, trim : false }; let result = duration.format(formatString, 0, options);
about 4 years ago · Santiago Trujillo Report

0

Está utilizando la duration como una propiedad en lugar de invocarla. Probar:

 let dd = moment.duration(400.99, 'hours').format('D:HH:mm');

En realidad, esto no es un problema de TypeScript. Tampoco funcionaría con JavaScript. En JavaSctript, obtendría un error de tiempo de ejecución, mientras que TypeScript no le permite hacerlo en tiempo de compilación (lo que demuestra su valor).

about 4 years ago · Santiago Trujillo Report

0

Estoy teniendo el mismo problema...

Parece como si hubiera un error en la definición del tipo. Otros tienen el mismo problema que puede ver aquí: https://github.com/souldreamer/noti-cli/blob/ef104c22792e0dfeb67d3372b04e231d45ffaa55/src/shared/pipes.ts#L38

Hubo una solución para el problema como parte de una solicitud de extracción en github, que desafortunadamente se cerró sin fusionarse: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/14327

Como solución temporal, puede usar la línea de código del primer enlace. Como segundo paso, debemos intentar crear una nueva solicitud de extracción en github, para solucionar el problema en versiones futuras.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!