2016-03-23 3 views
3

Я установил файлы определения моментов через типизации:Используя момент с машинопись 1.8 и ES6

typings install moment --save

До сих пор так хорошо, но когда я импортировать определения следующим образом:

import * as moment from 'moment';

Все компилируется в порядке, но когда я запускаю свое приложение, я получаю ошибку времени выполнения:

Uncaught TypeError: moment is not a function

Как именно следует импортировать библиотеку моментов?

если я вместо этого использовать:

const moment = require('moment');

Все работает, но я теряю все типобезопасность.

Мои 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" 
    ] 
} 

Любая помощь будет оценена.

+1

Как вы ссылаетесь/импортируете файлы определений (папка с образцами)? – Manu

+0

Пожалуйста, разместите свой 'tsconfig.json'. –

+0

Реферирование осуществляется с помощью типового модуля, он создает два основных файла определения: broswer.d.ts и main.d.ts. Для всех других пакетов npm с предоставленными типом это работает без проблем. – Aranir

ответ

0

Я использую VSCode, чтобы проверить ваш пример, и за то, что я мог бы заметить ваш tsconfig.json имеет дополнительный,

Сразу после «noLib»: ложное,

Я удалил его, перезапустите VSCode, и он работает с использованием:

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

Да, это был тип моего сообщения, но даже тогда я получаю ту же ошибку. Он компилируется отлично, но во время выполнения int завершается с ошибкой: 'TypeError: момент не является функцией – Aranir

+0

Хорошо, проблема теперь во время выполнения. Собираете ли вы свои файлы? Если нет, включили ли вы файл moment.js на своей странице? – vintem

+0

Да, если я «импортирую» его с 'const moment = require ('moment'),' все работает. Для любой другой библиотеки мы используем ее, только с файлами определения типов момента, когда мы столкнулись с этой проблемой. – Aranir

Смежные вопросы