2016-11-24 2 views
1

Это то, что я сделал до сих пор:Использование moment.js (или момент-timezone.js) в машинописном проекте

  • Установите NodeJs и играть с ним: команда node доступна
  • Установить машинопись с помощью npm: npm install typescript -g
  • Теперь я могу создавать .ts файлы, использовать синтаксис машинопись и компилировать файлы с помощью команды tsc

Хорошо, отныне все работает отлично. То, что я делаю, это перевод библиотеки Java в TypeScript. Но я столкнулся с проблемой: библиотека Java использует объект Calendar, и мне нужен такой же тип объекта в TypeScript.

Я искал немного и нашел moment.js. Я хотел импортировать эту библиотеку в свои файлы TypeScript.

Вопрос: Как мне это сделать? Я посмотрел вокруг на StackOverflow, но в каждом посте я нашел что-то, что заставило меня думать, что это не будет мое решение, как:

  • Установите typings/tsd: Я прочитал, что теперь moment.js имеет теперь (извините, возможно, это не очень хороший термин, но он имеет файл moment.d.ts)
  • Заезд в random.config.json файл: у меня нет такого файла конфигурации (не в NodeJs в моей догадке, а в TypeScript у меня есть файл tsconfig.json и попытался включить файл moment.d.ts, но я не смог его импортировать в TypeScript>"cannot find module moment")
  • Установить момент с npm: Я сделал это, но я не узнал, как включить файл moment.d.ts в свой проект.

и так далее ...

Я хотел бы знать, что мне не хватает, и как включить moment в моих .ts файлов для того, чтобы использовать его. Вероятно, мне не хватает знаний об организации этих модулей, поэтому каждое объяснение будет приветствоваться. версия

  • NodeJs: версия 7.1.0
  • Машинопись: 2.0.10

EDIT

Порывшись немного, я обнаружил, что я мог бы составить свои .ts файлы с помощью tsc Test.ts --traceResolution чтобы убедиться, что импорт правильно разрешен. Результат: они! Реальная проблема в том, что моя IDE (Visual Studio) не знает о moment.

enter image description here

Дело в том, что я создал каждый .ts файл вручную, путем создания нового файла, изменив расширение и открыть его в Visual Studio. Может быть, это проблема? Я просто использую Visual Studio в качестве текстового редактора с IntelliSense.Должен ли я что-то сделать, чтобы Visual Studio понимала, что импорт происходит от NodeJS?

+1

Существует раздел о том, как использовать момент в машинописном тексте в документах на [momentjs.com] (http://momentjs.com) –

+0

Это то, что я сделал, но, как указано, когда я хочу импортировать 'moment', я получил ошибку' не может найти модуль «момент». Я также попытался установить параметры компилятора, но я получил ту же ошибку. – Jacks

ответ

0
  1. Вам не нужно устанавливать интерфейс moment.js, потому что он предоставляет свои определения типов.
  2. Импорт moment.js в машинописи (Вы были правы).

    импорт * как момент из 'момента';

  3. Используйте moment.js в машинописи

    вар momentObject: moment.Moment

    momentObject.something() (например: momentObject.add (..))

+0

Наконец-то я смог использовать moment.js в своем решении, но мне пришлось внести некоторые изменения. Каждый класс, который у меня был, помещал их в одно пространство имен, но тогда я не смог импортировать «момент». Мне пришлось изменить 'namespace MyNamespace {export class MyClass {...}}' to 'экспортировать класс MyClass {...}' only. Ты знаешь почему ? Затем я позволю вам написать ответ, который я с радостью приму, спасибо – Jacks

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