2016-12-29 8 views
5

Każdy pomysł, dlaczego to nie działa lub jak mogę przedłużyć interfejs czasu, aby obsługiwał funkcję formatu?moment-duration-format.d.ts Definicja Nie przedłużający się moduł Moment

declare module 'moment' { 
    interface Duration { 
     format(template: string, precision?: string, settings?: any): string; 
    } 

} 

stosowany jako:

moment.duration(minutes, 'minutes').format('mm'); 

Dostaję błąd, który 'format' nie istnieje na typu 'czas trwania'

Odpowiedz

4

Import:

import * as moment from 'moment'; 
import 'moment-duration-format'; 

zewnątrz klasy, zdefiniuj interfejsy:

interface Duration extends moment.Duration { 
    format: (template?: string, precision?: number, settings?: DurationSettings) => string; 
} 

interface DurationSettings { 
    forceLength: boolean; 
    precision: number; 
    template: string; 
    trim: boolean | 'left' | 'right'; 
} 

Następnie w kodzie:

const duration = moment.duration(minutes, 'minutes') as Duration; 
return duration.format('mm'); 

Jeśli zdefiniowany interfejs Duration w innym pliku, trzeba będzie importować i eksportować je jako dobrze.

+0

ja wciąż otrzymuję błędy w moim kodu . Właściwość "duration" nie istnieje w momencie typu "typeof" moment ". –

+0

Potrzebuję rzucić okiem na twój kod, aby lepiej zrozumieć skąd pochodzi twój błąd. Ale spójrz na moją odpowiedź, zaktualizowałem definicje interfejsu. Nie sądzę, że rozwiąże to twój problem, ale po naprawieniu zapewni lepsze autouzupełnianie. – fxlemire

+0

Działa jak urok! Dzięki – Madman

2

Najpierw należy zainstalować typy:

npm install --save-dev @types/moment-duration-format 

drugie, importować je w pliku:

/// <reference path='../..your-path.../node_modules/@types/moment-duration-format/index.d.ts' /> 
import * as moment from 'moment'; 
import 'moment-duration-format'; 

Następnie można użyć

moment.duration(minutes, 'minutes').format('mm'); 
+0

'npm install --save-dev @ types/moment-duration-format' rozwiązał mój problem, natomiast' npm install moment-duration-format' did not. – samthui7

Powiązane problemy