我有一个global.d.ts
文件,该文件具有以下扩展方法声明:
declare global {
interface Object {
isEmpty(this: Object): boolean;
}
}
还有一个object-extension
文件,其实现如下:
Object.prototype.isEmpty = function (this: any) : boolean {
return true;//some logic
};
在main.ts
中,我导入了object-extension
文件。
扩展方法效果很好。但是
当我有一个带有[[ngModel)]的组件时(在输入标签中),它会产生以下错误:
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)