【问题标题】:How to interface Output() and Input() decorators?如何连接 Output() 和 Input() 装饰器?
【发布时间】:2018-02-14 07:15:37
【问题描述】:

我想为生成 JSON 的组件创建一个接口。我想强制每个实现组件接受一个类型作为输入并产生一个输出:

import { EventEmitter, Output, Input } from '@angular/core';
import { Foo, FooConfiguration } from '../../interfaces';
interface FooConfigurator {
    @Output() fooWasConfigured: EventEmitter<FooConfiguration>;
    @Input() fooInstance: Foo;
}

然后,实现 FooConfigurator 的组件将确保:

import { EventEmitter, Output, Input } from '@angular/core';
import { Foo, FooConfiguration, FooConfigurator } from '../../interfaces';
class ConcreteFooConfigurator implements FooConfigurator {
    @Output() fooWasConfigured: EventEmitter<FooConfiguration>;
    @Input() fooInstance: Foo; 
}

此接口定义失败,因为它的语法无效。我该怎么做,或者更好地解决问题?

【问题讨论】:

    标签: angular typescript interface decorator


    【解决方案1】:

    目前不可能将装饰器与 TypeScript 接口。下一个最好的方法是简单地连接类型并添加有关它的 cmets。

    interface FooConfigurator {
        fooWasConfigured: EventEmitter<FooConfiguration>;
        fooInstance: Foo;
    }
    

    这在本质上几乎涵盖了需求,EventEmitter 将可靠地看起来应该发出一个事件,并且在 fooInstance 中指示类具有这样的属性。 如何然而这些应该在 cmets 领域中使用。

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多