Tengo una clase de compra simple:
export class Purchase { customer!: Customer; shippingAddress!: Address; billingAddress!: Address; order!: Order; orderItems!: OrderItem[]; }Tengo un componente de pago que hace lo siguiente:
// populate purchase - customer purchase.customer = this.checkoutFormGroup.controls['customer'].value; // populate purchase - shipping address purchase.shippingAddress = this.checkoutFormGroup.controls['shippingAddress'].value; const shippingState: State = JSON.parse(JSON.stringify(purchase.shippingAddress.state)); const shippingCountry: Country = JSON.parse(JSON.stringify(purchase.shippingAddress.country)); purchase.shippingAddress.state = shippingState.name; purchase.shippingAddress.country = shippingCountry.name; En esto, las siguientes líneas dan el error Cannot find name 'JSON'.ts(2304) :
const shippingState: State = JSON.parse(JSON.stringify(purchase.shippingAddress.state)); const shippingCountry: Country = JSON.parse(JSON.stringify(purchase.shippingAddress.country)); Sospecho que el problema es que tengo la siguiente configuración en tsconfig.json :
"compilerOptions": { ... "target": "es2017", "module": "es2020", "lib": [ "es2018", "dom" ] } Intenté cambiar es2018 a es5 pero eso no resolvió mi problema. De cualquier manera, seguramente debería haber una forma de hacer este tipo de cosas con es2018 . ¿Alguien puede decirme cómo resolver esto?