typescript - 如何在打字稿中实现工厂方法?
问题描述
我的代码:
class Model {}
class Loader {
static load<M extends Model>(ModelClass: typeof Model): M {
return new ModelClass();
}
}
错误信息:Type 'Model' is not assignable to type 'M'.
游乐场链接:goo.gl/qrSsoX
解决方案
我们应该说load
将类作为参数而不是实例。
export interface Type<T> extends Function { new (...args: any[]): T; }
class Model {}
class Loader {
static load<M extends Model>(ModelClass: Type<M>): M {
return new ModelClass();
}
}
有关更多信息,请查看此答案
推荐阅读
- c# - 无效操作异常:传入 ViewDataDictionary 的模型项是类型
- typescript - 在 jest 中使用 jest.mock 模拟函数
- kubernetes - Kubernetes) 创建 pod 时未挂载的子目录
- mysql - Livehelperchat:网络聊天中的多个用户显示 mysql 死锁错误
- javascript - Vue 3 - 发出原始值不会触发输入?
- ios - 请求移动站点在 WkWebView 中不起作用。(Objective-C)
- r - 你能遍历 R 中的不同模型输入吗?
- javascript - jQuery Ajax 表单数据设置转换为纯 javascript
- r - ggparcoord,或其他处理费率的包?
- kubernetes - GCP pod失败时Kafka主题的数据阻力