问题描述
我有三个界面
inteface A {
name: string
id: number
address: string
details : object
}
inteface B {
name: string
id: string
address: string
details : string
age: number
}
inteface C {
name: string
id: string
address: object
details : object
age: number
height: number
}
是的,您注意到正确的不同接口的公共字段可能具有不同的类型
例如界面A 具有id: number
,但 B 具有id: string
现在我有一个通用的界面
interface Common {
group: string
class: string
}
现在我有一个接受参数Object的函数,该对象肯定具有 interface Common 字段,但可能具有接口A,B和C之一的字段
我想使用Common
,它将扩展其中的任何一个接口A
,B
和C
function insert(params: Common){
....
}
现在,我想到了使用泛型,但是我做不到想要的事情, 有人可以告诉我如何将其与泛型一起使用,如果可以通过泛型完成的话,我会得到我想要的东西,
如果没有建议我这样做的另一种方法。
解决方法
您可以这样做:
type ABC = A | B | C
function insert(params: Common & ABC): {
...
}