Generics 强制泛型在TypeScript中实现属性(对泛型的约束)
我想强制TypeScript中的泛型实现属性。 我目前的代码是:Generics 强制泛型在TypeScript中实现属性(对泛型的约束),generics,typescript,Generics,Typescript,我想强制TypeScript中的泛型实现属性。 我目前的代码是: interface IEventHandler<TArgs> { (args: TArgs): void } interface ISubscribable<THandlerType> { bind(fn: THandlerType): void; unbind(fn: THandlerType): void; } interface IEvent<TArgs>
interface IEventHandler<TArgs>
{
(args: TArgs): void
}
interface ISubscribable<THandlerType>
{
bind(fn: THandlerType): void;
unbind(fn: THandlerType): void;
}
interface IEvent<TArgs> extends ISubscribable<IEventHandler<TArgs>>
{
}
接口IEventHandler
{
(args:TArgs):无效
}
接口是可订阅的
{
绑定(fn:THandlerType):无效;
解除绑定(fn:THandlerType):无效;
}
接口IEvent扩展是可订阅的
{
}
类似于接口IEventHandler,其中targets:has\u property\u sender
。我知道TypeScript哪里不存在,所以也许我可以用另一个界面来解决问题
这在TypeScript中可能吗
编辑:. 我不知道它是否可以优化。您可以在Typescript中使用(“通用约束”部分),例如:
interface has_property_sender {
sender: Object;
}
interface MyArgs extends has_property_sender {
property: Object;
}
interface IEventHandler<TArgs extends has_property_sender>
{
(args: TArgs): void
}
接口具有\u属性\u发送方{
发送者:对象;
}
接口MyArgs extends具有\u属性\u发送方{
财产:客体;
}
接口IEventHandler
{
(args:TArgs):无效
}
谢谢。几个小时后,我设法做到了这一点,你的答案是正确的(这是我在TypeScript上的第三天)。我已经尝试过你的方法,但可以让发送者是泛型类型。如果你有时间,请你用一只眼睛看看我的代码的底部是否可以优化。有一些带有问号的评论。@Makla-我已经检查了你的代码,现在还没有找到“删除编辑”的方法。。。