在静态方法中返回的类实例与类型不匹配

时间:2018-05-24 23:01:06

标签: 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].

1 个答案:

答案 0 :(得分:0)

似乎流程无法在此处推断出类型,但如果您注释返回类型,它可以正常工作。

更改

static staticMethod(var1: T) {