Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

213
Visualizações
¿Escriba una porción redux segura?

Hola, tengo una pregunta: ¿cómo puedo hacer que el tipo de segmento sea seguro y también agregar la posibilidad de obtener valores de objetos como en setFilters? Las opciones iniciales me obligan a agregar el tipo en todas partes y no puedo depender de la interferencia de Typescript. ¿Cómo puedo resolverlo? Quiero obtener valores en setFilters como

object['key-name']

 type initialOptions = { [key: string]: any; }; const INITIAL_VALUE: initialOptions = { recipes: [] as Recipe[], likedRecipes: { recipes: [] as Recipe[], totalAmount: 0, }, recipeTypes: ["Breakfast", "Lunch", "Dinner", "Supper"] as string[], // tutaj dodaj czas i typy recipeTime: [ "Very short (~30min)", "short (~1hr)", "medium (~3hrs)", "Long (~6hrs)", ] as string[], // variables for filtering recipes recipeTitle: "", filterTypes: [] as string[], filterLengths: [] as string[], }; const recipeSlice = createSlice({ name: "recipe", initialState: INITIAL_VALUE, reducers: { replaceRecipes(state, action: PayloadAction<Recipe>) { state.recipes.push(action.payload); }, addRecipe(state, action: PayloadAction<Recipe>) { state.recipes.push({ username: action.payload.username, title: action.payload.title, type: action.payload.type, description: action.payload.description, id: action.payload.id, time: action.payload.time, }); }, addLikedRecipe(state, action: PayloadAction<number>) { const likedRecipe = state.recipes.find( (recipe: Recipe) => recipe.id === action.payload ) as Recipe; state.likedRecipes.recipes.push(likedRecipe); state.likedRecipes.totalAmount++; }, deleteLikedRecipe(state, action: PayloadAction<number>) { state.likedRecipes.recipes = state.likedRecipes.recipes.filter( (recipe: Recipe) => recipe.id !== action.payload ); state.likedRecipes.totalAmount--; }, setFilterTitle(state, action: PayloadAction<string>) { state.recipeTitle = action.payload; }, setFilters(state, action: PayloadAction<FilteringConfiguration>) { if (action.payload.set) { state[action.payload.filterName].push(action.payload.content); } }, removeFilter(state, action: PayloadAction<FilteringConfiguration>) {}, }, });
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda