flowtype - 静态方法中返回的类实例与类型不匹配
问题描述
我正在以静态方法返回类的实例,但流程抱怨泛型类型不兼容。这是流程的问题还是我做错了什么?
代码:
class Foo<T> {
var1: T
constructor(var1: T) {
this.var1 = var1
}
static staticMethod(var1: T) {
return new Foo(var1)
}
}
let x:Foo<number> = new Foo(1) // works
let y:Foo<number> = Foo.staticMethod(1) // doesn't work
错误:
let y:Foo<number> = Foo.staticMethod(1)
^ Cannot assign `Foo.staticMethod(...)` to `y` because `T` [1] is incompatible with number [2] in type argument `T` [3].
解决方案
似乎 flow 无法在这里推断类型,但如果您注释返回类型,它就可以正常工作。
改变
static staticMethod(var1: T) {
至
static staticMethod(var1: T): Foo<T> {
推荐阅读
- firefox - 在 OEL (Oracle Enterprise Linux) 上安装 Firefox
- amazon-mws - MWS 中的 GetLowestPricedOffersForASIN 和 GetLowestOfferListingsForASIN 有什么区别
- mvvm - 检查 WPF MVVM 绑定中更改的属性
- google-apps-script - 将带有图标的项目添加到 Google Apps 脚本中的菜单
- java - 我可以使用惰性初始化来使用 RmiServiceExporter 吗?
- python - python3 - 如何使用 python 请求克服最大 url 限制
- c# - C# VSTO AddIn 查找字段功能区
- c# - 无法设置将模拟传递到对象列表中的方法c#
- java - 将每个属性的单个 bean rowise 写入 csv
- angular - 移动 div 未触发点击功能