typescript - Angular 7, Metodă de extensie cu NgModel
Am un fișier global.d.ts care are următoarea declarație de metodă de extensie:
declare global {
interface Object {
isEmpty(this: Object): boolean;
}
}
Și un fișier object-extension care are implementarea:
Object.prototype.isEmpty = function (this: any) : boolean {
return true;//some logic
};
în main.ts import fișierul object-extension. Metoda de extensie funcționează perfect. DAR
Când am un component cu [(ngModel)] în el (într-un tag input), generează următoarea eroare:
ERROR Error: Uncaught (in promise): Error: @Output isEmpty not initialized in 'NgModel'. Error: @Output isEmpty not initialized in 'NgModel'.
at createDirectiveInstance (core.js:18560)
at createViewNodes (core.js:19776)
at callViewAction (core.js:20092)
at execComponentViewsAction (core.js:20011)
at createViewNodes (core.js:19804)
at createRootView (core.js:19690)
at callWithDebugContext (core.js:20722)
at Object.debugCreateRootView [as createRootView] (core.js:20208)
at ComponentFactory_.push../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (core.js:18029)
at ComponentFactoryBoundToModule.push../node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create (core.js:7812)
at createDirectiveInstance (core.js:18560)
at createViewNodes (core.js:19776)
at callViewAction (core.js:20092)
at execComponentViewsAction (core.js:20011)
at createViewNodes (core.js:19804)
at createRootView (core.js:19690)
at callWithDebugContext (core.js:20722)
at Object.debugCreateRootView [as createRootView] (core.js:20208)
at ComponentFactory_.push../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (core.js:18029)
at ComponentFactoryBoundToModule.push../node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create (core.js:7812)
at resolvePromise (zone.js:814)
at resolvePromise (zone.js:771)
at zone.js:873
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:14134)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:595)