2016-03-23 15 views
3

Mit Moment installiert ich die Zeit Definitionsdateien durch Typisierungen:mit Typoskript 1,8 und ES6

typings install moment --save

So gut, weit so, aber wenn ich importieren Sie die Definitionen in folgender Weise:

import * as moment from 'moment';

Alle kompiliert gut, aber wenn ich meine Anwendung ausführen, erhalte ich einen Laufzeitfehler:

Uncaught TypeError: moment is not a function

Wie genau sollte die Momentbibliothek importiert werden?

wenn ich statt:

const moment = require('moment');

Alles funktioniert, aber ich verliere die ganze Art Sicherheit.

Mein tsconfig.json:

{ 
    "compilerOptions": { 
    "jsx": "preserve", 
    "target": "ES6", 
    "declaration": false, 
    "module": "es2015", 
    "experimentalDecorators": true, 
    "sourceMap": true, 
    "noLib": false, 
    }, 
    "exclude": [ 
    "node_modules", 
    "meteor_core", 
    "typings/browser", 
    "typings/browser.d.ts" 
    ] 
} 

Jede Hilfe würde geschätzt.

+1

Wie verweisen/importieren Sie Ihre Definitionsdateien (Typ-Ordner)? – Manu

+0

Bitte posten Sie Ihre 'tsconfig.json'. –

+0

Die Referenzierung erfolgt durch das Typisierungsmodul, es erzeugt zwei Hauptdefinitionsdateien: broswer.d.ts und main.d.ts. Für alle anderen npm-Pakete mit bereitgestellten Typings funktioniert es ohne ein Problem. – Aranir

Antwort

0

ich VSCode bin mit Ihrem Beispiel zu testen, und für das, was ich Ihre tsconfig.json hat eine extra feststellen konnte,

Gleich nach dem „noLib“: false,

ich es entfernt haben, Neustart VSCode und es funktioniert mit:

import * as moment from 'moment'; 
console.log(moment().startOf('day')); 
+0

Ja, das war ein Typ in meinem Beitrag, aber selbst dann bekomme ich den gleichen Fehler. Es kompiliert fein, aber zur Laufzeit int schlägt mit: 'TypeError: Moment ist keine Funktion' – Aranir

+0

OK, das Problem jetzt ist es zur Laufzeit. Bündeln Sie Ihre Dateien? Wenn nicht, haben Sie die Datei "moment.js" in Ihre Seite eingefügt? – vintem

+0

Ja, wenn ich es mit "const moment = require ('moment')" "importiere", funktioniert alles. Für jede andere Bibliothek, die wir verwenden, funktioniert es, nur mit Typdefinitionsdateien von dem Moment an, in dem wir auf dieses Problem gestoßen sind. – Aranir