使用OR条件扩展TypeScript中的多个接口

问题描述

我有三个界面

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,它将扩展其中的任何一个接口ABC

function insert(params: Common){
   ....
}

       

现在,我想到了使用泛型,但是我做不到想要的事情, 有人可以告诉我如何将其与泛型一起使用,如果可以通过泛型完成的话,我会得到我想要的东西,

如果没有建议我这样做的另一种方法。

解决方法

您可以这样做:


type ABC = A | B | C

function insert(params: Common & ABC): {
  ...
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...