将对新对象点的响应分配给相同的引用

时间:2019-04-03 21:05:55

标签: javascript angular typescript

我在Angular中还很陌生,在将服务器的json响应分配给新的实例化对象时遇到了问题。

我有一个MyClass类

export class MyClass {
Id: number
}

obj: MyClass;
myService.fetch().subscribe(a=>obj=a);

问题是,来自服务器的响应具有五个属性,当我将此响应分配给我的对象时,尽管该对象只有一个属性“ Id”,但它们却全部获得了。

我将这两个对象都打印到控制台上

myService.fetch().subscribe(a=>{
obj=a
console.log(a);
console.log(obj);
}});

我收到两个相同的对象。为什么会这样?应该不会通知我,因为类MyClass缺少属性,所以无法完成分配吗?

1 个答案:

答案 0 :(得分:0)

a是什么类型?如果输入不正确,Typescript将无法检测到不匹配项。

  

是否应该通知我无法完成分配,因为类MyClass缺少属性?

否,a上有其他属性。它们不会改变您的代码与obk交互的方式,因此将属性更多的对象分配给类型更少的类型没有问题。打字稿毕竟是鸭子打字(如果某个东西有Id就是MyClass)。