angular - 如何为 EventEmitter 使用动态返回类型(类似泛型)
问题描述
我们为内部库创建了一个自定义下拉列表。有没有办法让“用户”/开发人员知道,根据@Input multiple
参数返回什么类型?
我知道您可以从组件代码中“读取”并解释应该返回的内容。这并不是真正的目标,因为它是一个库。例如,如果这不是组件而是服务方法,我会使用泛型。
@Component({
selector: 'bkh-dropdown',
templateUrl: './dropdown.component.html',
styleUrls: ['./dropdown.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class DropdownComponent implements OnInit {
public selectedOption: DropdownItem[] = [];
...
@Input() items: DropdownItem[] = [];
@Input() multiple: boolean = false;
@Output() valueChange = new EventEmitter<DropdownItem[] | DropdownItem>();
constructor() { }
ngOnInit() { }
public optionSelected() {
// return the first element if multiple is not active, otherwise the whole array
this.valueChange.emit(this.multiple ? this.selectedOption : this.selectedOption[0]);
}
}
解决方案
推荐阅读
- data-warehouse - 在处理 Snowflake 中的数据沿袭时有哪些选择?
- google-cloud-platform - 我如何知道哪个管理员在 GCP 中删除了 pub/sub 订阅?
- android - Azure BLOB 存储 REST API - 使用 ADAL 访问令牌返回 403 和 404 错误
- activemq-artemis - ActiveMQ Artemis JDBC Store:为数据库连接添加连接池?
- ansible - 使用即席查询获取特定的结果条目
- laravel - 尝试将 NFS 与 laravel homestead 和 virtualbox 一起使用时出错
- python - AttributeError:模块“numpy”没有属性“DataReader”
- python - 为什么将py转换为exe后显示ModuleNotFoundError
- azure-logic-apps - 在逻辑应用中将变量设置为空字符串
- python - 将 dask Series 列表转换为 dask DataFrame