Aurelia CLI & TypeScript & MomentJS
Я не заставляю Aurelia (CLI), TypeScript и MomentJS работать вместе. Я видел решения проблем Aurelia & Moment, но они не используют Aurelia CLI.
Вот что я делаю в данный момент:
Новый проект Aurelia с использованием Aurelia CLI:
au new
Я выбираю TypeScript вместо Babel.
Установить момент
npm install moment --save
Это устанавливает момент 2.4.1. Я могу найти его (включая moment.d.ts) из node_modules.
Редактировать aurelia.json
Я добавляю «момент» к «зависимости»:
Используйте момент в app.ts
Проблемы начинаются, когда я сейчас пытаюсь импортировать момент в app.ts.
import { moment } from 'moment';
Это дает ошибку: «Модуль» o: / dev / spikes / amoment / node_modules / момент / момент »не имеет экспортированного члена« момент »
Смена корпуса исправляет эту ошибку:
import { Moment } from 'moment';
Но в этот момент я полностью застрял. При попытке использовать момент (или момент), я всегда получаю сообщение об ошибке «Не удается найти имя« момент ». Вот текущий app.ts, который выдает ошибку« Не удается найти имя »момент:»:
import { Moment } from 'moment';
export class App {
message = 'Hello World!';
hello() : string {
return moment.format();
}
}
Кажется, проблема в импорте. Есть идеи как обойти это?
Обновить
После исправления app.ts, чтобы он выглядел следующим образом, вещь теперь компилируется. Но он выдает «TypeError: Невозможно прочитать свойство 'format' из undefined" при запуске.
import { Moment } from 'moment';
import { autoinject } from "aurelia-framework";
export class App {
message: string;
moment: Moment;
constructor(moment: Moment) {
this.moment = moment;
this.message = this.moment.format('MMMM Do YYYY, h:mm:ss a')
}
}
Обновить
Судя по последней ошибке, кажется, что автоинжект не работал без @autoinject. Так добавили, что и ошибка изменится: «TypeError: moment.format не является функцией».
import { Moment } from 'moment';
import { autoinject } from "aurelia-framework";
@autoinject
export class App {
message: string;
moment: Moment;
constructor(moment: Moment) {
this.message = moment.format();
}
}