使用 OR 条件在 TypeScript 中扩展多个接口
Extend multiple interface in TypeScript with OR condition
我有三个接口
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
}
YES 你注意到了,不同的接口可能有不同的公共字段类型
像 接口 A 有 id: number
但 B 有 id: string
现在我有了一个通用的界面
interface Common {
group: string
class: string
}
现在我有一个接受参数对象的函数,它肯定会有 接口通用 字段,但可能有接口 A、B 和 C 之一的字段
我想使用 Common
,它将扩展其中的任一接口 A
、B
和 C
function insert(params: Common){
....
}
现在我想到了使用泛型,但是我没有做我想做的事,
那么有人可以告诉我如何将它与泛型一起使用并获得我想要的东西,如果它可以通过泛型完成的话,
如果不行,建议我使用另一种方法。
你可以这样做:
type ABC = A | B | C
function insert(params: Common & ABC): {
...
}
我有三个接口
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
}
YES 你注意到了,不同的接口可能有不同的公共字段类型
像 接口 A 有 id: number
但 B 有 id: string
现在我有了一个通用的界面
interface Common {
group: string
class: string
}
现在我有一个接受参数对象的函数,它肯定会有 接口通用 字段,但可能有接口 A、B 和 C 之一的字段
我想使用 Common
,它将扩展其中的任一接口 A
、B
和 C
function insert(params: Common){
....
}
现在我想到了使用泛型,但是我没有做我想做的事, 那么有人可以告诉我如何将它与泛型一起使用并获得我想要的东西,如果它可以通过泛型完成的话,
如果不行,建议我使用另一种方法。
你可以这样做:
type ABC = A | B | C
function insert(params: Common & ABC): {
...
}