我在静态方法中返回类的实例,但是流程抱怨不兼容的泛型类型。这是流量问题还是我做错了什么?
代码:
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].
答案 0 :(得分:0)
似乎流程无法在此处推断出类型,但如果您注释返回类型,它可以正常工作。
更改
到
static staticMethod(var1: T) {