如何解决Knex在TypeScript中的OrderBy
我正在尝试学习如何实现高级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"
或"propB"
,顺序应该是"asc"
或"desc"
。
不幸的是,它不起作用。我尝试使用现有的实现,但是它们不够具体,或者我不了解它的工作原理。
我将如何实施呢?
解决方法
要获取通用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游乐场https://tsplay.dev/lm0Lam
中看到此代码版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。