为了账号安全,请及时绑定邮箱和手机立即绑定

Knex 在 TypeScript 中的 OrderBy

Knex 在 TypeScript 中的 OrderBy

Helenr 2022-12-29 09:38:37
我正在尝试学习如何实现高级 Typescript 类型在knex.js中,一个实现orderBy是以下数组{ column: string, order: "asc" | "desc" }我想构建一个打字稿类型type OrderBy<T> = {  column: K in keyof T;  order?: "asc" | "desc";}因此,如果 T 是{ "propA": true, "propB": 1 },它会智能感知column应该是"propA"or"propB"并且顺序是"asc"or "desc"。不幸的是,它不起作用。我尝试使用现有的实现,但要么它们不够具体,要么我不明白它是如何工作的。我将如何着手实施这个?
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

要获取通用 T 中的键,您只需要执行keyof T,您的代码将如下所示:


interface Column { "propA": true, "propB": 1 }


type OrderBy<T> = {

  column: keyof T;

  order?: "asc" | "desc";

}


// Since knex's OrderBy is an array, your code could be like

const knex: Array<OrderBy<Column>> = [{ column: "propA", order: "asc"  }]

你可以在 TS playground https://tsplay.dev/lm0Lam中看到这段代码



查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信