我在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缺少属性,所以无法完成分配吗?
答案 0 :(得分:0)
a
是什么类型?如果输入不正确,Typescript将无法检测到不匹配项。
是否应该通知我无法完成分配,因为类MyClass缺少属性?
否,a
上有其他属性。它们不会改变您的代码与obk
交互的方式,因此将属性更多的对象分配给类型更少的类型没有问题。打字稿毕竟是鸭子打字(如果某个东西有Id
就是MyClass
)。