state[productId].addnProducts = { ...state[productId].addnProducts, ...addnProducts };
нельзя! мутировать! объекты! type Cat = {meow: () => void} type Dog = {woof: () => void} const createCat = (): Cat => ({meow: () => console.log('Meow!')}) const createDog = (): Dog => ({woof: () => console.log('Woof!')}) const mutateAnimals = (animals: (Cat | Dog)[]) => animals.push(createDog()) const cats: Cat[] = [] mutateAnimals(cats) cats.forEach(cat => cat.meow()) компилится, но фейлится в рантайме. угадайте, почему? правильно, из-за мутации
У меня упрощённо выглядит так. type AddnProductType = 'bort' | 'drawer' | 'roof' | 'window' | 'rolledBed'; type AddnVariation = Record<AddnProductType, ProductVariation>; interface ProductConfigurator { addnProducts?: Partial<AddnVariation>; } const state: ProductConfigurator; как правильно в state добавлять вариации, независимо для каждого типа AddnProductType?
Т.е. необходимо в разное время отправлять что-то типа {bort: {variation}} или {drawer: {variation}} А на выходе охота получить state = { bort: {variation}; drawer: {variation} }
Обсуждают сегодня