То, что вы получаете, - это завернутый в jquery элемент (например, то, что вы получаете, если вы вызываете $(el)
), поэтому, возможно, TypeScript каким-то образом выдает метаданные неправильного типа.
Чтобы исправить это,вам нужно будет указать свою версию машинописного текста, tsconfig, конфигурацию сборки и версию Aurelia.
А пока посмотрите на испускаемое .js
вашего приложения при использовании @autoinject()
и выполните поиск по запросу: design:paramTypes ", который привязан к вашему пользовательскому атрибуту.Это должно выглядеть примерно так:
exports.MyCustomAttribute = __decorate([
aureliaDependencyInjection.autoinject(),
__metadata("design:paramtypes", [Element])
], exports.MyCustomAttribute);
Затем переключитесь на @inject(Element)
, соберите и сделайте то же самое.Вы должны найти что-то вроде этого:
exports.MyCustomAttribute = __decorate([
aureliaDependencyInjection.inject(Element),
__metadata("design:paramtypes", [Element])
], exports.MyCustomAttribute);
Посмотрите, отличается ли объект Element
, переданный aureliaDependencyInjection.inject(..)
, от объекта, переданного __metadata("design:paramtypes", ..)
Это должно помочь исключитьTypeScript действительно испускает неправильные метаданные или, если что-то идет не так.