Я немного сбит с толку.
У меня есть приложение Angular 8, где мне нужно использовать полифилл getOwnMetadata
, предоставляемый core-js
, а также используемый Angular для внутреннего использования. Сам полифилл загружен - я убедился в этом, явно добавив его в файл polyfills.ts
моего проекта. Я также вижу в запущенном приложении с консолью разработчика, что объект Reflect
в браузере действительно расширен с помощью необходимых методов. Пока все в порядке.
Теперь я пытаюсь использовать пакет @types/core-js
из NPM, чтобы на самом деле использовать эти методы в моем коде без приведения объекта Reflect
к any
. Определения типов, предоставленные этим пакетом, просто «не работают» для меня.
Вместо расширения пространства имен Reflect
, типизации определяют пространство имен core
с вложенным пространством имен core.Reflect
, которое повторно объявляет стандартные методы и дополнительные методы полифилла для предложения отражения-метаданных.
Это означает, что я не могу просто вызвать Reflect.getOwnMetadata
, потому что методы не определены в root Reflect
пространство имен, и я также не могу вызвать core.Reflect.getOwnMetadata
, потому что это, конечно, не то, где объект браузера действительно "живет" ...
Может кто-нибудь сказать мне, как это должен работать? Как я должен использовать наборы в моем сценарии?