Angular2 декораторы не определены
Мой проект создается с помощью веб-пакета, но когда я размещаю приложение на локальном хосте, я получаю сообщение об ошибке.
Uncaught ReferenceError: __decorate не определен.
Сначала я получаю сообщение об ошибке с декоратором Injectable(). Но когда я раскомментирую, я получаю ту же ошибку, но с extends.
Я создал репо, который дублирует ошибки.
https://github.com/shawnrmoss/decorators
Я подозреваю, что это как-то связано с типизацией, поскольку проблема возникла, когда мне пришлось изменить эти определения.
typings_orig.json имеет оригинальные определения типов
Я не уверен, что происходит. Надеюсь, кто-нибудь сможет пролить свет на это и помочь мне.
Благодарю.
1 ответ
Я думаю, что вы не импортируете в свой проект библиотеку Reflect-metadata. Эта библиотека предоставлена Angular благодаря angular2-polyfills.js
файл. Эта библиотека содержит как ZoneJS, так и Reflect-метаданные.
Эта библиотека используется декораторами, особенно @Injectable
один. Они внутренне используют Reflect.decorate
функция.
Из вашего комментария кажется, что вы импортируете только es6-обещание и Zone-MicroTask...
Я начал с начального набора angularclass. В файле vendor ts это есть // (эти модули находятся в 'angular2 / bundles / angular2-polyfills', поэтому не используйте это здесь) import 'es6-обещание'; импорт 'zone.js / lib / browser / zone-microtask';
Эта статья может помочь вам и искать Reflect.decorate
: