我正在尝试在 TypeScript 中实现这一点:
接口 IViewModel { }
接口 IScope<TViewModel 扩展 IViewModel> {
vm:TViewModel;// {1}
}
接口 IController<TViewModel 扩展 IViewModel,TScope 扩展 IScope<TViewModel>> { }
类 Controller<TViewModel 扩展 IViewModel,TScope 扩展 IScope<TViewModel>>
实现 IController<TViewModel, TScope> { } // {2}
但我在第 {2} 行收到错误:“类型 'IScope<TViewModel extends IViewModel>' 不满足类型参数 'TScope extends IScope<TViewModel>' 的约束 'IScope<TViewModel extends IViewModel>'。”
如果我进一步尝试扩展 Controller 类:
接口 IMainViewModel 扩展 IViewModel { }
主控制器类
扩展 Controller<IMainViewModel, IScope<IMainViewModel>> { } // {3}
我在第 {3} 行遇到类似的错误:“类型 'IScope<IMainViewModel>' 不满足类型参数 'TScope extends IScope<TViewModel>' 的约束 'IScope<TViewModel extends IViewModel>'。”
在我看来这应该有效。我究竟做错了什么? …