typescript - Promise 的打字稿类型
问题描述
Promise: any
在没有我目前拥有的情况下如何最好地键入以下代码?
export const up = function(knex: knex, Promise: any): Promise<knex> {
return Promise.all([
knex.schema.createTable(
'counters',
(table: knex.TableBuilder): void => {
table.increments('id').primary();
table.integer('count');
}
),
]);
};
我已经尝试过PromiseConstructor
,但是返回时出现错误Promise<knex>
。似乎找不到任何有关键入knex.js
迁移的文档。
解决方案
为什么返回类型应该是Promise<knex>
?
knex.schema.createTable
返回一个SchemaBuilder
which extends ChainableInterface
,它最终扩展Bluebird<any>
,所以返回类型是Promise<any[]>
.
推荐阅读
- sql-server - 使用子字符串/字符索引
- reactjs - 如何解析输入中的文本?
- json - 如何对特定列进行分组,并在 Scala Spark 中将整行作为 JSON 字符串获取?
- spring-mongodb - 我可以用spring从mongodb流式传输二进制文件吗?
- php - 循环生成从今天开始的最后十个星期一
- python - 为什么Init函数返回Object类型而其他函数返回NoneType
- python - Django 2.1+ 批量更新记录及其相关记录的计数?
- vue.js - Adonuxt.js 我的 js 库没有从静态文件夹中调用
- php - 注册后使用自定义闪现会话数据的 Laravel 自定义重定向
- javascript - 您可能需要适当的加载器来处理此文件类型:反应组件中的箭头函数