代码之家  ›  专栏  ›  技术社区  ›  dave0688

Mock组件:Mock类型没有索引签名

  •  0
  • dave0688  · 技术社区  · 6 年前

    ERROR in src/app/helpers/mock-component.ts(17,13): error TS7017: Element implicitly has an 'any' type because type 'Mock' has no index signature.
    

    代码如下所示:

    import { Component, EventEmitter } from '@angular/core';
    
    export function MockComponent(options: Component): Component {
    
        const metadata: Component = {
            selector: options.selector,
            template: options.template || '',
            inputs: options.inputs,
            outputs: options.outputs || [],
            exportAs: options.exportAs || ''
        };
    
        class Mock { }
    
        if (metadata.outputs) {
            metadata.outputs.forEach((method: any) => {
                Mock.prototype[method] = new EventEmitter<any>();
            });
        }
    
        return Component(metadata)(Mock as any);
    }
    

    有人知道我怎样才能解决这个错误吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   dave0688    6 年前

    我找到了原因:我只需要把Mock作为以下行中的任何一个:

    (Mock as any).prototype[method] = new EventEmitter<any>();