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();
  }
}

Ответы на вопрос(2)

Ваш ответ на вопрос