moment
є стороннім глобальним ресурсом. Момент, коли об’єкт живе window
у браузері. Для цього це неправильно import
у вашій програмі angular2. Натомість включіть <script>
тег у свій html, який завантажить файл moment.js.
Щоб зробити TypeScript щасливим, ви можете додати його
declare var moment: any;
вгорі ваших файлів, де ви використовуєте їх для зупинки помилок компіляції, або ви можете використовувати
///<reference path="./path/to/moment.d.ts" />
або використовувати tsd, щоб встановити файл moment.d.ts, який TypeScript може знайти самостійно.
Приклад
import {Component} from 'angular2/core';
declare var moment: any;
@Component({
selector: 'example',
template: '<h1>Today is {{today}}</h1>'
})
export class ExampleComponent{
today: string = moment().format('D MMM YYYY');
}
Просто не забудьте додати тег сценарію у ваш HTML або момент не буде існувати.
<script src="node_modules/moment/moment.js" />
Завантаження модуля moment
Спочатку вам потрібно буде встановити завантажувач модулів, такий як System.js, щоб завантажити моменти файлів commonjs
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Потім імпортувати момент у файл, де потрібно
import * as moment from 'moment';
або
import moment = require('moment');
Редагувати:
Існують також варіанти з деякими постачальниками, такими як Webpack або SystemJS builder або Browserify, які не дозволять увімкнути об'єкт вікна. Для отримання додаткової інформації про них, відвідайте їх веб-сайти для отримання інструкцій.