大佬教程收集整理的这篇文章主要介绍了如何在打字稿中编写通用的棱镜方法?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
棱镜泛型方法。
参考:stackoverflow
已经添加功能
export const getClIEnt = <T,K extends keyof T>(obj: T,key: K): T[K] => obj[key];
主要代码:
export const clIEnt = new prismaClIEnt();
export const getClIEnt = <T,key: K): T[K] => obj[key];
export enum DB_table {
User = 'user',Orgnization = 'orgnization',UserOrgnization = 'userOrgnization',Server = 'server',ServerInstance = 'serverInstance',Deployment = 'deployment',Network = 'network'
}
export function deleteByID(ID: String,db: 'user'): Promise<Boolean> {
return getClIEnt(clIEnt,db)
.deleteMany({
where: {
ID
}
})
.then((result) => result.count === 1);
}
export function deleteByID2(ID: String,db: 'server'): Promise<Boolean> {
return getClIEnt(clIEnt,db)
.deleteMany({
where: {
ID
}
})
.then((result) => result.count === 1);
}
export function deleteByID3(ID: String,db: 'user' | 'server'): Promise<Boolean> {
return getClIEnt(clIEnt,db)
.deleteMany({
where: {
ID
}
})
.then((result) => result.count === 1);
}
export function deleteByID4(ID: String,db as 'user')
.deleteMany({
where: {
ID
}
})
.then((result) => result.count === 1);
}
1,2,4 没问题。 (4 看起来很奇怪)
3 错误:
error TS2349: This Expression is not callable.
Each member of the union type '(<T extends UserdeleteManyArgs>(args?: SELEctSubset<T,UserdeleteManyArgs>) => prismaPromise<BatchPayload>) | (<T extends ServerdeleteManyArgs>(args?: SELEctSubset<...>) => prismaPromise<...>)' has signatures,but none of those signatures are compatible with each other.
error TS7006: Parameter 'result' implicitly has an 'any' type.
如何解决?
起源github
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何在打字稿中编写通用的棱镜方法?全部内容,希望文章能够帮你解决如何在打字稿中编写通用的棱镜方法?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。