我有一个扩展多个接口的接口
interface A extends B, C {
a1: type;
a2: type;
a3: type;
}
interface B {
b1: type;
b2: type;
b3: type;
}
interface C {
c1: type;
c2: type;
c3: type;
}
A和I的服务器响应具有B和C类型的单独对象。我想要做的是使用类型将其解耦,这样我就不必这样做了
a:A = response
b = { b1: a.b1, b2: a.b2 ... }
c = { c1: a.c1, c2: a.c2 ... }
答案 0 :(得分:2)
您可以简单地使用断言类型
如果您执行类似
的操作returnedObject as B
这将基本上提取对象的B部分,只要它是兼容的。这意味着它需要在B合同中定义所有属性。如果你这样做,这对C来说也是如此
returnedObject as C
基本上类型断言是一种转换,但在编译时。不像常规演员那样在运行时。
您告诉TypeScript您可以完全控制所返回的对象类型,并且您确切知道所返回内容的格式。