Я создал собственный декоратор компонентов, как описано здесь Наследование компонентов Angular 5 с переопределением свойств декоратора .
import { Component } from '@angular/core';
export function ExtendedComponent(extendedConfig: Component = {}) {
return function (target: Function) {
const annotations = target['__annotations__'] || [],
parameters = target['__paramaters__'] || [],
propMetadata = target['__prop__metadata__'] || [];
if (annotations.length > 0) {
const parentAnnotations = Object.assign({}, annotations[0]);
Object.keys(parentAnnotations).forEach(key => {
if (parentAnnotations.hasOwnProperty(key)) {
if (!extendedConfig.hasOwnProperty(key)) {
extendedConfig[key] = parentAnnotations[key];
annotations[0][key] = '';
} else {
if (extendedConfig[key] === parentAnnotations[key]){
annotations[0][key] = '';
}
}
}
});
}
return Component(extendedConfig )(target);
};
}
Используется:
@ExtendedComponent({
selector: 'app-auto-complete',
})
export class AutoCompleteComponent extends AutoComplete {
constructor() {
super();
}
ngOnInit() {
}
}
Он отлично работает в режиме разработки, но когда я пытаюсь его построить, я получаю следующую ошибку:
ERROR in : Can't bind to 'suggestions' since it isn't a known property of 'cds-auto-complete'.
1. If 'cds-auto-complete' is an Angular component and it has 'suggestions' input, then verify that it is part of this module.
2. If 'cds-auto-complete' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("...
Я попытался добавить CUSTOM_ELEMENTS_SCHEMA & NO_ERRORS_SCHEMA, но это не помогает.Есть идеи по решению?