小编Jak*_*dík的帖子

TypeScript 中类型 T 不满足类型参数 P 的约束 C 错误

我正在尝试在 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>'。”

在我看来这应该有效。我究竟做错了什么? …

generics typescript

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

generics ×1

typescript ×1