如何连接 Output() 和 Input() 装饰器?
Posted
技术标签:
【中文标题】如何连接 Output() 和 Input() 装饰器?【英文标题】:How to interface Output() and Input() decorators? 【发布时间】: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;
此接口定义失败,因为它的语法无效。我该怎么做,或者更好地解决问题?
【问题讨论】:
【参考方案1】:目前不可能将装饰器与 TypeScript 接口。下一个最好的方法是简单地连接类型并添加有关它的 cmets。
interface FooConfigurator
fooWasConfigured: EventEmitter<FooConfiguration>;
fooInstance: Foo;
这在本质上几乎涵盖了需求,EventEmitter 将可靠地看起来应该发出一个事件,并且在 fooInstance 中指示类具有这样的属性。 如何然而这些应该在 cmets 领域中使用。
【讨论】:
以上是关于如何连接 Output() 和 Input() 装饰器?的主要内容,如果未能解决你的问题,请参考以下文章
廖雪峰Java6 IO编程-2input和output-4Filter模式