Arrays localstorage最初返回分配的类型,然后返回类型对象
我正在开发一个购物车,使用户可以将产品类型的物品添加到购物篮中。当一个项目最初被添加时,它是Product类型的,但是当另一个itemsecond项目被添加到数组中时,从那时起它是Object类型的。在操作过程中,这可能不会有太大的区别,但是我宁愿保持类型的一致性。请有人指出我哪里出了问题,非常感谢Arrays localstorage最初返回分配的类型,然后返回类型对象,arrays,typescript,types,local-storage,cart,Arrays,Typescript,Types,Local Storage,Cart,我正在开发一个购物车,使用户可以将产品类型的物品添加到购物篮中。当一个项目最初被添加时,它是Product类型的,但是当另一个itemsecond项目被添加到数组中时,从那时起它是Object类型的。在操作过程中,这可能不会有太大的区别,但是我宁愿保持类型的一致性。请有人指出我哪里出了问题,非常感谢 constructor(private _http: Http) { localStorage.setItem("cart", JSON.stringify(new
constructor(private _http: Http) {
localStorage.setItem("cart", JSON.stringify(new Array<Product>()));
}
GetCartProducts() {
let storage:string = localStorage.getItem("cart");
return <Array<Product>>((storage) ? JSON.parse(storage) : new Array<Product>());
}
AddProduct(product: Product) {
let items = <Array<Product>>this.GetCartProducts();
console.log(items);
items.push(<Product>product);
console.log(items);
localStorage.setItem("cart", JSON.stringify(<Array<Product>>items));
}
问题隐藏在JSON.parse的使用中。此方法返回纯javascript对象,不附加任何类型信息。因此,如果要键入对象,必须手动恢复类型信息 有关更多信息,请查看 特别是在typescript中的实现