我们在项目中使用typescript泛型,但似乎当我们在基类中使用它们作为返回类型时,例如PromiseLike,它会获得PromiseLike< {}>。
我创建了一个小应用来重现错误:https://github.com/ssachtleben/typescript-generics-problem
如果我们的泛型处理中的错误或打字稿中的错误,有人可以检查吗?
太棒了。
谢谢, 塞巴斯蒂安
答案 0 :(得分:1)
编译器无法推断您对accountService.findOne的调用中的类型,因此默认为“任何'”。你必须自己提供它。
return new AccountService().findOne<Account>({}).then(account => account.username);
您应该在AccountService中提供一个名为findAccount的方法,为您执行此操作,因此来电者不必担心。
public findAccount(id: number): PromiseLike<Account> {
return this.findOne<Account>({ id: id }); //example
}