关于ts中接口的value如何继承

比如一个接口
{
A:{a:string,b:string},
B:{a:string,c:string},
C:{a:string,d:string},
},这个接口的value都有共同的一些字段,我想设置一个公共的接口,然后找个value直接继承,然后拓展,怎么写,或者怎样优化这种嵌套的,

阅读 2.1k
2 个回答

用交叉类型就好了。

interface IValue {
  a: string;
}

interface MyInterface {
  A: IValue & { b: string; };
  B: IValue & { c: string; };
  C: IValue & { d: string; };
}

非要用继承也不是不行,挨个儿定义呗。

新手上路,请多包涵

官方推荐的写法是用继承的方式:

interface IValueA {
    a: string
}

interface IValueAB extends IValueA {
    b: string
}

....


interface IValueABC {
  A: IValueAB;
  B: IValueAC;
  C: IValueAD;
}

虽然这样代码有点多, 但是更清晰且好维护扩展

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题