Показать сообщение отдельно
  #1 (permalink)  
Старый 28.12.2019, 20:59
Аспирант
Отправить личное сообщение для sniffysko Посмотреть профиль Найти все сообщения от sniffysko
 
Регистрация: 20.10.2009
Сообщений: 79

Ошибка регистрации абстрактного класса в модуле
Здравствуйте. Имеется абстрактный класс для реализации базовой функциональности компонент. И вот настал час выполнить продуктовую сборку и приключилась ошибка. Класс зерегистрирован в CommonAppModule, который несет в себе объявления общеупотребимых компонент проекта:
@NgModule({
	exports: [
		CommonComponentsClass
        ...
	],
	declarations: [
		CommonComponentsClass
        ...
	]
})
export class CommonAppModule{}


А вот сам класс. Ничего хитрого в общем:
@Component({
	selector: '',
	template: ''
})
export abstract class CommonComponentsClass<T> implements OnInit, OnDestroy {
	abstract initState(): void;
	abstract formSubmit(): void;
	...
}


Со стороны среды разработки сразу получю ошибку:
ERROR in src/app/share/common.app.module.ts(64,3): error TS2322: Type 'typeof CommonComponentsClass' is not assignable to type 'any[] | Type<any>'.
Type 'typeof CommonComponentsClass' is not assignable to type 'Type<any>'.
Cannot assign an abstract constructor type to a non-abstract constructor type.

Как решить эту ошибку?
Есть конечно вариант вместо абстрактных функций в базовом классе наклепать функции, которые будут вызывать исключения и вынуждать разработчика перекрывать эти функции, но как-то не симпатично мне это решение.
Ответить с цитированием