Ich versuche, der moment.js-Bibliothek zusätzliche Funktionen hinzuzufügen. Ich möchte eine Funktion hinzufügen, die selbst einen Moment() in ihrem Körper erfordert, und es fällt mir schwer, dies herauszufinden.Typoskript: Hinzufügen einer Funktion zum momentum.js-Namespace
Ich verwende die neueste Version von Typescript und moment.js. Ich habe versucht, eine Lösung zu finden, aber ich habe nichts gefunden. Diese Lösung (Typescript: add function to momentjs' prototype) ist schon fast in Betrieb, denke ich, aber immer noch nichts.
Bisher, was ich habe ist:
import * as moment from 'moment';
export namespace moment{
interface Moment{
myFunc(): boolean;
}
}
(moment as any).fn.myFunc = function() {
return moment(....);
};
Ich bin nicht sicher, wohin ich gehe falsch, aber wenn ich versuche, den Moment Bibliothek zu verwenden und myFunc Ich dachte Moment importieren (Import * als Moment aus 'moment') wäre genug aber myFunc wird nicht erkannt, nur der Standardmoment funktioniert.
Ex. Dies sagt, dass myFunc() nicht erkannt wird.
import * as moment from 'moment'
import Moment = moment.Moment
... moment().add(...) //works
... moment().myFunc() // doesn't recognize myFunc()
Irgendwelche Vorschläge, wie Sie dies zum Funktionieren bringen können?
weil 'myFunc' nicht in' moment' Sie nicht existiert – Aravind
sollte Ihren eigenen "Moment" -Typ importieren, nicht den von "Moment" exportierten. Also ändere 'import * als Moment von 'moment' 'zu' import * als Moment von'./Moment-extended'' oder so. – csander
Okay, ich habe meinen Code so geändert, wie es @csander vorgeschlagen hat, aber es funktioniert nicht. Mache ich das richtig? Ich importiere '* als Moment von 'Moment' und' * als MyMoment von'./Moment.extended 'im obigen Beispiel und versuche, myFunc folgendermaßen aufzurufen:' myMoment.myFunc() ', aber ich erhalte diesen Fehler: Die Eigenschaft 'myFunc' existiert nicht beim Typ 'typeof' c:/Git /.../ moment.extended '' –