Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
How to use moment-duration-format in TypeScript?

I am using moment.js in my TypeScript (Ionic2/Angular2) project. Following on from this post, I now want to try out a plugin moment-duration-format

I have the npm package and the type definition and am able to use by import as..

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

I now want to use moment-duration-format

I have installed via npm install moment-duration-format --save and then the type definition via npm i @types/moment-duration-format --save.

I can see both npm modules.

As always, there is always some mystery on how to use such type definitions (the useage including import never seems to be in any doco).

I have tried adding import 'moment-duration-format';, import duration from 'moment-duration-format'; (moment-duration-format/index.d.ts' is not a module.)

I get an error when trying to use as follows..

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'.

Does anyone have any idea on how to use this in TypeScript.

Thanks in advance

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

I was using the workaround here, but it now looks like the ype def has been fixed. Getting an update of the type def So I can do the following...

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 Relatório

0

You are using duration as a property instead of invoking it. Try:

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

This is actually not a TypeScript problem. It wouldn't work with JavaScript either. In JavaSctript you would get a runtime error while TypeScript doesn't let you do it at compile time (proving its worth).

about 4 years ago · Santiago Trujillo Relatório

0

I'm having the same problem...

It seems as if there is an error in the type definition. Others have same issue as you can see here: https://github.com/souldreamer/noti-cli/blob/ef104c22792e0dfeb67d3372b04e231d45ffaa55/src/shared/pipes.ts#L38

There was a fix for the problem as part of a pull request on github, that unfortunately has been closed without merging: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/14327

As a temporary workaround, you could use the line of code of the first link. As second step we should try to create a new pull request on github, to get the problem fixed in future releases.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda