Angular 7,NgModel的扩展方法

时间:2018-11-11 13:35:05

标签: angular typescript angular6 angular7

我有一个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)

0 个答案:

没有答案