首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在类型记录中,默认的返回类型是什么?

在类型记录中,默认的返回类型是什么?
EN

Stack Overflow用户
提问于 2019-01-23 11:32:15
回答 1查看 2.3K关注 0票数 2

我有以下函数,我似乎找不出它的返回类型

代码语言:javascript
复制
export function save(contractType: ContractType, tx?: Knex.Transaction): any {
  return db
    .connection(tx)(CONTRACT_TYPE_TABLE)
    .insert(contractType)
    .catch(err => {
      throw new DatabaseError(en.GENERIC_ERROR, err);
    });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-23 15:39:08

根据GitHub上可用的类型定义,我假设您正在处理一个QueryBuilder实例。

代码语言:javascript
复制
interface QueryBuilder extends QueryInterface, ChainableInterface 

这意味着您的Insert方法在实现QueryInterfaceChainableInterfaces接口的东西上被调用。

Insert是在QueryInterface接口中定义的,并返回被调用的QueryBuilder。信息不多。

看一下ChainableInterface,我们注意到它扩展了BlueBird<any>

代码语言:javascript
复制
interface ChainableInterface extends Bluebird<any> 

蓝鸟是众多JavaScript承诺库之一。您可以阅读更多关于它的这里

所以,总结一下我们目前所知道的.

插入返回Bluebird<any>

从蓝鸟库来看,Catch似乎返回了调用它的诺言对象(就像从承诺库中期望的那样)。这意味着您的方法实际上返回了一个Bluebird<any>承诺

至于实际的类型..。根据Knex文档中可用的示例,Insert应该返回一个数组,其中包含插入记录的索引。因此,它应该足够安全地假设您使用的是返回一个数字数组的承诺。

最后:

您的方法正在返回一个QueryBuilder对象,该对象可能用于构建更多的查询(这应该是ChainableInterface的目的)。它还应该作为一个Bluebird<number[]>承诺,您可以使用它获得插入的记录标识符(如果需要的话)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54326293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档